ورود

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 متن مورد نظر رو به صورت گیومه دار تبدیل می کنه
'متن آزمایشی'
پس دیگه لازم نیست بصورت دستی کوتیشن بذاریم