PDA

View Full Version : ایجاد فیلتر



دلفی3000
یک شنبه 31 فروردین 1382, 14:51 عصر
با سلام
من یک بانک دارم با 2 فیلد 1- نام 2- نام خانوادگی ... و اسمهای زیر را دارم
محمد رضا رضایی فر
محمد حسن رضایی منش
محمد.........n رضایی.........n

حالا میخواهم بانک خود را بر حسب نامهایی که رشته محمد در نام آنها و رشته
رضا در فامیل آنها وجود دارد فیلتر کنم.
شما چه راهی را پیشنهاد میکنید؟

2- اگر کلمه محمد در قسمت دوم نام باشد چه؟ مانند (علی محمد)

با تشکر.

(امید)
یک شنبه 31 فروردین 1382, 16:02 عصر
ADOQuery1.close;
ADOQuery1.SQL.tex:=' select * from bankname where fname like N ' + #39 + '%' + edit1.text+ '%'+#39' +and lname like N'+ #39+'%' edit2.text+'%'+#39;
ADOQuery1.open;

edit1.text می تونه مثلا شامله محمد و edit2.text شامله رضا باشه

امید

دلفی3000
دوشنبه 01 اردیبهشت 1382, 18:54 عصر
من نتونستم از این راه حل استفاده کنم چون دلفی از من ایراد میگرفت.
اگر راه حل بهتری دارید لطفا به من کمک کنید.

با تشکر.

amirrf
دوشنبه 01 اردیبهشت 1382, 19:37 عصر
نوع دیتابیس رو مشخص نکردید. کدى که امید نوشته بجز اشتباه کوچک در جابجاشدن ' و + درست است.

دلفی3000
دوشنبه 01 اردیبهشت 1382, 20:23 عصر
من از Paradox استفاده میکنم. در ضمن اشتباهات گرامری را رفع کردم ولی
در موقع انجام Query خطا میگیرد.

دلفی3000
دوشنبه 01 اردیبهشت 1382, 20:43 عصر
من از فرمانهای زیر استفاده کردم ولی باز هم ارور میگیرد.


FilterStr:='Costumer_Name='+chr(39)+'*'+edit1.Text +chr(39)+'*'+'and Costumer_Fam='+'*'+chr(39)+edit2.Text+chr(39)+'*';
Table1.Filter:=FilterStr;
Table1.Filtered:=True;

(امید)
چهارشنبه 03 اردیبهشت 1382, 17:58 عصر
سلام

دلفی 3000عزیز باید همیشه انتظار ایراد رو داشته باشی.

کد بالایی فقط یه جابجای بین ' و + لازم داشت من تصحیح کردمش :


ADOQuery1.close;
ADOQuery1.SQL.tex:=' select * from bankname where fname like N ' + #39 + '%' + edit1.text+ '%'+#39 +'and lname like N'+ #39+'%' edit2.text+'%'+#39;
ADOQuery1.open;


و اما می تونی از پارامتر هم استفاده کنی .
برای این کار تو proprtes > SQL بنویس :


select inb from bookb where inb like :p0

p0 اسمی است که برای پارامتر اتنخاب کردی
حالا تو propertes>parameters نوع p0 رو ftstring انتخاب کن
و این کد رو بنویس


adoquery1.close;
adoquery1.Parameters[0].Value:='%'+edit1.text+'%';
adoquery1.open;


موفق باشی.

امید