PDA

View Full Version : مشکل جستجو به روش فیلتر



DelphiFriend
دوشنبه 12 اسفند 1387, 11:24 صبح
سلام دوستان
من يه سوال داشتم. اميدوارم منو راهنمايي کنيد. در دستور فيلتر که به شکل زير است.

AdoTable1.Filter:='nameField='''+Edit1.Test+'''';
AdoTable1.Filtered:=true;
يه فرق اساسي که با جستجو با Query داره اينکه بايد کلمه مورد جستجو دقيقا مثل فيلد داخل جدول باشه تا جستجو با موفقيت همراه باشه ولي در Query که دستورش به شکل

ADOQuery1.SQL.Text:=
'select * from table1 where nameField like'+quotedstr('%'+edit1.Text+'%');
ADOQuery1.Active:=true;

است اگه متن مورد جستجو شبيه به فيلد جدول باشه هم جستجو با موفقيت همراه است. حالا سوال اينکه چطور ميشه در جستجو به روش فيلتر هم اين خصوصيت Query رو حفظ کرد؟

as13851365
دوشنبه 12 اسفند 1387, 16:08 عصر
انتخاب تمام رکوردهايي که کلمه "علي" در داخلش باشد


select Name from tblName where name like '%علي%'


اگر از BDE و ODBC براي اتصال به اكسس استفاده ميكني اين كد رو استفاده كن



Table1.Filter:='Name='+QuotedStr('Ali*');
Query1.Filter:='Name='+QuotedStr('Ali*');


ولي اگه از Ado استفاده كرديد


AdoTable1.Filter:='Name like '+QuotedStr('Ali%');
adoQuery1.Filter:='Name like '+QuotedStr('Ali%');






dataset.filetr := 'YourTextField = A*';
dataset.filter := 'YourTextField = '''+edit1.text+'''*';

DelphiFriend
دوشنبه 12 اسفند 1387, 17:54 عصر
ممنون دوست خوبم. البته من کد دیگری هم پیدا کردم که میزارم شاید به درد دوستان دیگه بخوره.



ADOTable1.Filter:='name Like '+''''+'%'+Trim(Edit1.Text)+'%'+'''';
ADOTable1.Filtered:=true;

موفق باشید.