PDA

View Full Version : از این سردرگمی نجاتم بدین



dr_g
یک شنبه 19 تیر 1384, 12:22 عصر
با سلام

من یه برنامه دارم که شامل یه Database هستش
فرمی در برنامه وجود داره که شامل یه TextBox ویه ComboBox هستش .TextBoxمخصوص ورود کد مشتری و کمبوباکس حاوی لیست مشتریان هستش.
حالا من می خوام که کاربر با وارد کردن کد مشتری یا انتخاب نام آن ازکمبو باکس وارد فرم2 (ورود اطلاعات جدید) بشه
در فرم2 (ورود اطلاعات جدید) علاوه بر سایر تکست باکس ها ، تکست باکس های کد و نام وجود داره
من می خوام که کاربر با واردکردن کد یا انتخاب نام از کمبوباکس وارد فرم 2 بشه به طوری که تکست باکس کد ونام به طور خودکارو پیش فرض حاوی کد مشتری و نام اون باشه
برای این کار چیکار باید کنم؟آیا مقدار فیلد کد یا فیلد نام موجود در فرم 1 رو باید تو کل Database جستجو کنم (اگه تعداد رکورد ها زیاد باشه چی).من با دستورات Sql این کاررو کردم ولی امان از پیغام خطاها........................دوستان اگه راهی به ذهنشون می رسه کمکم کنن.دیگه خسته شدم........

برای فیلد نام:(NLنام فیلدName)

rs.Open "select * from dbase_table where NL='%" & CmbName.List(CmbName.ListIndex) & "%'", cn, adOpenKeyset, adLockOptimistic

برای فیلد کد:

rs.Open "select * from dbase_table where code=" & TxtCode.Text & "", cn, adOpenKeyset, adLockOptimistic

پیغام خطا:
Either BOF or EOF is true,or the current record has been deleted
Requested operation requires a current record


(یه مثال از سوال :صفحه لوگین همین سایت که وقتی نام کاربر و کلمه عبور رو وارد می کنین(در صورت درست بودن)نام کاربری در گوشه بالای سمت چپ سایت نشون داده می شه.که صفحه لوگین همون فرم 1 و صفحات اصلی سایت همون فرم 2هستن)

درسته سوالم یکم گیج کنندس ولی یه نمه با دقت بخوونین همه چی دستتون می یاد.

PalizeSoftware
یک شنبه 19 تیر 1384, 12:34 عصر
دوست عزیز اگه برنامه این بخش رو در همین بخش بذاری بهتر می‌تونم کمک کنم و برات تصحیح کنم.

dr_g
یک شنبه 19 تیر 1384, 13:24 عصر
با سلام مجدد
این هم کد برنامه .امیدوارم که کمکم کنین
ممنون

PalizeSoftware
یک شنبه 19 تیر 1384, 14:32 عصر
دوست عزیز این هم نتیجه برنامه. درست شد فقط یه اشکال کوچولو داشت.

dr_g
یک شنبه 19 تیر 1384, 16:23 عصر
دوست عزیز واقعا دستت درد نکنه

نمی دونم چه جوری جبران کنم.بعضی موقع آدم این قدر رو یه تیکه کد فکر می کنه و اونقدر خسته می شه که دیگه کلش کار نمی کنه
اگه بازم اشکال داشتم مزاحمت می شم تو همین تاپیک
ولی یه مشکلی هستش.یه نام مشابه یکی از نام موجود تو بانک به بانک اضافه کن.وبرنامه رو امتحان کن
مثلا اگر دوتا نام Xداشته باشیم.برنامه Xاولی رو در نظر می گیره

خیلی خیلی خیلی ممنون

dr_g
یک شنبه 19 تیر 1384, 16:25 عصر
راستی دوست عزیز تو همون برنامه تو قسمت گزارش می تونی عناوین DataGrid رو فارسی کنی و رنگ پس زمینه اونو تغییر بدی
ممنون

dr_g
یک شنبه 19 تیر 1384, 16:33 عصر
با سلام مجدد
راجع به اون برنامه ای تصحیحش کردی.همون ترفند رو واسه جستجو بکار بردم.ولی یه مشکل داره
مثلا اگه کلمه علی رضا رو جستجو کنیم فقط فیلد هایی که مقدارشون برابر با علی رضا هستن رو نشون می ده و بی خیال فیلد هایی که مقدارشون علی هستش میشه.(یعنی جستجو بسیار دقیق انجام می گیره)

PalizeSoftware
یک شنبه 19 تیر 1384, 18:08 عصر
دوست عزیز برای رفع مشکلاتی که عنوان کردی از قبیل مشابه بودن نام و ... بنده بخشی از فرم و کد شما رو اصلاح کردم که البته باید ببخشید.
فایل رو دانلود کن و ببین

dr_g
دوشنبه 20 تیر 1384, 14:25 عصر
با سلام
دوست عزیز با از کمکت ممنون.ولی من تو برنامم باید از همون فرم اولی استفاده کنم.استفاده ازListView کارروراحتر کرده.,ولی اگه من بخوام از همون ComboBoxنام مورد نظرمو انتخاب کنم چی(با فرض اینکه نام مورد نظر بیشتر از یک بار تکرار شده باشه). اگه همینو کمکم کنی خیلی منمونتم(گرچه از برنامه بالایت خیلی چیزا یاد گرفتم)

PalizeSoftware
دوشنبه 20 تیر 1384, 22:46 عصر
دوست عزیز چنانچه اصرار داشته باشید که همان سبک را ادامه دهید باید آیتم دیگری به لیست اضافه کنید که وجه تمایز دو نام مشابه باشد که کاربر در انتخاب آنها دچار مشکل نشود.

dr_g
سه شنبه 21 تیر 1384, 09:09 صبح
با سلام
من از یک کمبوباکس کمکی استفاده کردم که مقدار کد نام ها رو تو اون قرار دادم.این کمبو باکس مخفی هستش.خلا صه کلام جوابمو پیدا کردم
ممنون

SH_Zahra
چهارشنبه 22 تیر 1384, 23:24 عصر
با اجازه صاحب تاپیک من اینو دانلودش کردم اما برای من جواب نمی ده از این قسمت ارور میگیره
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Me.Caption = ColumnHeader.Width
End Sub

اینم ارورش:
compile error
user-defined type not defined