PDA

View Full Version : مشکل در جستجو



sajad_boj71
چهارشنبه 12 اسفند 1388, 12:17 عصر
سلام.:قلب::قلب:
من 3 تا فیلد دارم :1-نام -2-نام خانوادگی 3-نام پدر
حالا من میخواهم وقتی در فیلد نام ،نامی را جستجو کردم با زدن اولین حرف تمام اسمهایی که با آن حرف شروع میشوند در دیتا گرید نمایش داده شود.که تا اینجاش رو بلدم:تشویق:
حالا مشکل من اینه که به طور مثال وقتی من حرف "س" را وارد میکنم تمام اسمهایی که با حرف "س" شروع میشوند نمایش داده میشود ولی وقتی میخواهم در ادامه فیلد نام خانوادگی را جستجو کنم تمام نام خانوادگی هایی نمایش داده میشوند که به نام من ارتباط ندارند و حتی نام خانوادگی هایی که نام آنها با حروف دیگر شروع میشوند نیز نمایش داده میشود. و همین قضیه برای نام پدر نیز اتفاق می افتد.:متفکر::اشتباه:
لطفا من رو راهنمایی کنید

polisoftco
چهارشنبه 12 اسفند 1388, 13:19 عصر
دوست عزیز شما باید شرط بزارین، بدین صورت که اگر تکست باکس نام رو نوشت فقط نام رو جستجو کنه و اگر تکست باکس نام و تکست باکس فامیل هردوشون نوشته شده بود شما باید براساس هردو فیلد سرچ کنین و همینطور نام پدر.

sajad_boj71
پنج شنبه 13 اسفند 1388, 20:58 عصر
دوست عزیز من منظور شما را متوجه نشدم.اگه ممکنه با کد توضیح بدید.

polisoftco
جمعه 14 اسفند 1388, 15:31 عصر
if Trim(txtName) <> "" Then
rsAdo.open "SELECT * FROM Table WHERE Name = '" & Trim(txtName) & "'"
ElseIF Trm(txtName) <> "" And Trim(txtFamily) <> ""
rsAdo.open "SELECT * FROM Table WHERE Name = '" & Trim(txtName) & "' And Name = '" & Trim(txtFamily) & "'"
.
.
End If

sajad_boj71
جمعه 14 اسفند 1388, 16:54 عصر
با تشکر از شما دوست عزیز.
اما من جوابم رو نگرفتم و چند تا مشکل دارم.
1-این کد رو کجا بنویسیم؟
2-منظور از rsAdo چیه؟
:عصبانی++::عصبانی++::عصبانی++:

polisoftco
جمعه 14 اسفند 1388, 18:48 عصر
1- این کد رو در قسمت دکمه ی جستجو بنویس.
2- منظور، ADODC هستش، اگر از ADODC استفاده میکنین بجای rsADO عبارت ADODC1.Recordset رو بنویسین. البته اگر ADODC رو به دیتابیس وصل کرده باشین (Connection).
بعداز این کد شما باید این جدول رو به گریدتون وصل کنین تا اطلاعات موردنظر نشون داده بشن.

sajad_boj71
جمعه 14 اسفند 1388, 19:50 عصر
دوست عزیز.مثل اینکه شما سوال من رو درست نفهمیدید. من نمیخوام بازدن دکمه جستجو انجام بشه.
بلکه میخوام در قسمت change یک text کدی بنویسم که با وارد کردن هر حرفی تمام اسامی موجود در بانک که با آن حرف شروع میشن در دیتا گرید نمایش داده بشه. لطفا سوال رو دوباره بخون

skh1300
جمعه 14 اسفند 1388, 21:50 عصر
شما بايد از چند تا select استفاده كني

polisoftco
جمعه 14 اسفند 1388, 22:45 عصر
خب دوست عزیز شما بجای دکمه این کد رو درقسمت Change تکست باکستون بزارین خب بازهم همون میشه دیگه فرقی نداره که.

به رنگ قرمز توجه کنین، اگر حرفی توی تکست باکس نوشته بشه تمام اسمایی که با این حرف شروع میشن رو نمایش میده.



ADODC1.ConnectionString = "Provider ..."

if Trim(txtName) <> "" Then
ADODC1.Recordset.open "SELECT * FROM Table WHERE Name like'%" & Trim(txtName) & "%'"

ElseIF Trm(txtName) <> "" And Trim(txtFamily) <> ""
ADODC1.Recordset.open "SELECT * FROM Table WHERE Name like'%" & Trim(txtName) & "%' And Name like'%" & Trim(txtFamily) & "%'"
.
.
End If
ADODC1.Refresh
Set DataGrid1.DataSource = ADODC1.Recordset

sajad_boj71
شنبه 15 اسفند 1388, 10:32 صبح
خیلی ممنون دوست عزیز.من تونستم با راهنماییت برنامم رو کامل کنم.یک دنیا ممنون.
به امید پیشرفت روز افزونت در همه زمینه ها.
موفق و پیروز باشی.

xxxxx_xxxxx
شنبه 15 اسفند 1388, 13:00 عصر
اگر حرفی توی تکست باکس نوشته بشه تمام اسمایی که با این حرف شروع میشن رو نمایش میده.



ADODC1.Recordset.open "SELECT * FROM Table WHERE Name like'%" & Trim(txtName) & "%'"

سلام،
با این کار فقط اسم هایی که با این حرف شروع میشن نمایش داده نمیشن، بلکه کلیه اسامی ای که این کاراکترها یا حروف داخلشان باشد نمایش داده میشود.
مثلاً اگر در دیتابیس کلمه "علی" را داشته باشیم. علاوه بر اینکه با تایپ کردن حرف "ع" این کلمه نمایش داده میشه، با تایپ کردن حرف "ل" هم نمایش داده میشه. این به خاطر علامت درصدی هست که در ابتدای رشته در دستور فوق قرار گرفته. اگر اولی علامت درصد رو حذف کنید آنوقت تنها با تایپ کردن حروف ابتدای یک کلمه، کلمات مشابه نمایش داده میشن.

polisoftco
شنبه 15 اسفند 1388, 20:43 عصر
باسلام
ممنون دوست عزیز، یادم رفته بود درصدهارو توضیح بدم.

کد موردنظر دوست عزیزی که سوال کرده بودن، بدین صورت میشه.

باتشکر
موفق باشین



ADODC1.Recordset.open "SELECT * FROM Table WHERE Name like'" & Trim(txtName) & "%'"