View Full Version : فیلتر کردن بانک اطلاعاتی با شرایط خاص
محسن شمس
شنبه 07 آبان 1384, 19:32 عصر
آقا من برای فیلتر کردن اطلاعاتم از این کد استفاده می کنم
Table1.Filtered :=true ;
Table1.Filter :='Name='+QuotedStr(Edit2.Text) ;
این کد به درد من نمی خوره
من کدی را می خواهم که وقتی در یک کادر متن نوشتم " ح " هر اسمی که در فیلد Name با " ح " شروع شده است نمایش دهد
ولی کد بالایی که براتون نوشتم میاد میلد فقط اسمی که " ح " می باشد را پیدا می کند
oghab
شنبه 07 آبان 1384, 21:05 عصر
سلام
ببین من فقط کار با table های sql و از طریق adotable را بلدم. در اونجا برا همچین کاری اینطور می نویسم:
adoTable1.Filtered :=true ;
adoTable1.Filter :='name like '+chr(39)+Edit1.Text+'%'+chr(39) ;
% به جای یه رشته با طول نامشخص یا حتی تهی استفاده میشه. پس فقط کافیه در edit اول نام مورد نظر نوشته بشه.
chr(39) هم ب جای ' است که باید رشته مون بین 2 کوتیشن قرار بگیره!
موفق باشی
sanaiy
یک شنبه 22 آبان 1384, 03:47 صبح
آقا من برای فیلتر کردن اطلاعاتم از این کد استفاده می کنم
Table1.Filtered :=true ;
Table1.Filter :='Name='+QuotedStr(Edit2.Text) ;
میشه لطف کنید و بگیدتابع QuotedStr چه عملی انجام میده ؟
ممنون :لبخندساده
Kamyar.Kimiyabeigi
یک شنبه 22 آبان 1384, 07:44 صبح
شما در اون کادر مورد نظرتون بجای فیلتر کردن از locate استفاده کنین
ADOTable.Locate('field_1', Trim(Edite1.Text), [loPartialKey]);
کد بالا رو در onchange کادر بنویس
mzjahromi
یک شنبه 22 آبان 1384, 11:13 صبح
اگه از TTable استفاده می کنی اینجوری بنویس مشکلت حل می شه
Table1.Filter := 'Name = ' + QuotedStr(Edit1.Text+'*');
hamidehsadat
یک شنبه 19 فروردین 1386, 15:18 عصر
من همه دستورات بالا را برای سرچ کردن استفاده کردم ولی هیچ کدام جواب نمی دهد
SYNDROME
یک شنبه 19 فروردین 1386, 20:14 عصر
با سلام
دستور را به این شکل استفاده کن.
ADO.Filtered := False;
ADO.Filter := 'Name Like''%'a'%'' ;
ADO.Filtered := True;
ختما جواب می ده چون خودم خیلی استفاده می کن.
hossein taghi zadeh
یک شنبه 19 فروردین 1386, 23:34 عصر
قبل از فیلتر کردن از این دستور استفاده کنید.
TableName.FilterOptions := [];
bigmag
دوشنبه 20 فروردین 1386, 19:15 عصر
برای فیلتر کردن باید این کد رو وارد یک RadioButton کنی :
Table1.Filter := True
Table1.Filtered := ''
و بعد داخل یک دکمه ایم کد :
Table1.Locate := 'نام فیلد = ''' + Edit1.Text + '''';
bigmag
دوشنبه 20 فروردین 1386, 19:20 عصر
البته اینکار برای دلفی
bigmag
دوشنبه 20 فروردین 1386, 19:24 عصر
اگر از بانک Access اسفاده میکنی فقط به جای Table نام بانک رو بذار
مجتبی صادقپور
چهارشنبه 22 فروردین 1386, 10:41 صبح
در رویداد onfilterrecord مربوط به table:
if(edit1.text=copy(table1.fieldbyname('field name'),1,length(edit1.text))) then
accept:=true
else
accept:=false
در رویداد onchange مربوط به edit box می نویسی: table1.filtered:=true
arshia_
چهارشنبه 22 فروردین 1386, 11:31 صبح
QuotedStr متن مورد نظر رو به صورت گیومه دار تبدیل می کنه
'متن آزمایشی'
پس دیگه لازم نیست بصورت دستی کوتیشن بذاریم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.