سلام
با استفاده از Adoquery به راحتی می تونی این کار رو انجام بدی . من برای این که به راحتی بتونید این کار رو انجام بدین مراحل انجام این کار رو مرحله به مرحله و به زبان ساده توضیح می دم :
1-از سربرگ ADO یک ADOQuery روی فرم قرار بده و از سربرگ Data Access هم یک DataSource
2-خاصیت Connection مربوط به ADOQuery رو به Connection اصلی وصل کن (مثلا ADOConnection که به پایگاه داده اصلی متصل کرده اید)
3-در خاصیت SQL مربوط به ADOQuery روی ... کلیک کنید و در پنجره ظاهر شده کد های زیر رو بنویسید
کد:
Select * From [COLOR="Red"]Table [/COLOR]
نکته: در کد بالا منظور از Table نام جدولی است که می خواهید عمل فیلتر رو انجام بدین
4- مقدار خاصیت Active مربوط به ADOQuery را True قرار بدین
نکته: اگر این خاصیت به True تغییر نکرد در کدی که در SQL نوشته اید اشکالی وجود دارد
5-خاصیت DataSet مربوط به DataSource را ADOQuery 1 قرار بدین
6- از سربرگ DataControls یک DBGrid روی فرم قرار بدین و خاصیت DataSource آن را DataSource1 قرار بدین
7-از سربرگ Standard دو تا Edit روی فرم قرار بدین
8- روی Edit1 دوبار کلیک کنید و کد های زیر را در آن بنویسید
کد:
procedure TForm1.Edit1Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from Table where Bankname like'''+Edit1.Text+'%''');
ADOQuery1.Open;
end;
9- و در Edit2 کد های زیر رو بنویس
کد:
procedure TForm1.Edit2Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from Table where Bankname like'''+Edit1.Text+'%'' and Type like'''+Edit2.Text+'%''');
ADOQuery1.Open;
end;
نحوه کار: الان اگه برنامه رو اجرا کنید و داخل Edit1 بنویسید
م مثلا تمام بانک
ملی ها نمایش داده میشه و سپس در Edit2 هم الان بنویسید مثلا
ا در این صورت تمام بانک
ملی ها که Type آن با
ا شروع میشه نمایش داده میشه
10-پایان
روش دوم:
توجه : یک روش دیگر هم برای این کار وجود داره و اون استفاده از پارامتره که این روش دیگر مثل روش قبلی نیست و باید نام کامل رو وارد کنید برای این روش نیز می توانید یک Button و دو تا Edit روی فرم قرار بدین و در SQl مربوط به ADOQuery کد قبلی را پاک کنید و کد زیر را بنویسید
کد:
select * from Table
where Bankname =:a and Type =:b
سپس روی Button دوبار کلیک کنید و کدهای زیر را در آن بنویسید:
کد:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.Parameters.ParamValues['a']:=Edit1.Text;
ADOQuery1.Parameters.ParamValues['b']:=Edit2.Text;
ADOQuery1.Open;
end;
نحوه کار: در این روش باید نام کامل را در Edit ها وارد کنید مثلا در Edit1 بنویسید
ملی و در Edit2 بنویسید مثلا
بزرگ خوب الان اگه روی Button کلیک کنی تمام BankName هایی که نامش
ملی و Type آن
بزرگ است در DBGrid نمایش داده میشه
اگر باز هم مشکلی داشتید بپرسید تا جایی که بتونم کمک کیکنم
____________
روزي کـه تو آمــــدي به دنيا عــريان *** جمعي به تو خندان و تو بودي گريان
کاري بکن اي دوست که وقت رفتن *** جمعي به تو گريند و تو باشي خندان