Filtreme Sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
bnyamin
Üye
Mesajlar: 44
Kayıt: 01 Mar 2019 12:55

Filtreme Sorunu

Mesaj gönderen bnyamin »

Kod: Tümünü seç

function SQLDateFmt( aDate: TDate ): string;
begin
  Result := QuotedSTR( FormatDateTime('dd-mm-yyyy', aDate) );
end;


procedure TForm1.Button1Click(Sender: TObject);
VAR
SQL : string;
begin

SQL := '';
if checkbox1.Checked=true then SQL := '[bitistarihi]>='+SQLDateFmt(datetimepicker1.Date) else SQL := SQL + ' AND '+  '[bitistarihi]=' +SQLDateFmt(datetimepicker1.Date) ;
if checkbox2.Checked=true then SQL:= '[bitistarihi]<=' +SQLDateFmt(datetimepicker2.Date); //else SQL := SQL + ' AND '+  '[CIKIS_TARIHI]=' + SQLDateFmt(Datetimepicker2.Date) ;
if trim(CXLOOKUpcombobox1.Text) <> '' then if SQL = '' then SQL := '[ürünkodu]=' + QuotedStr(CXLOOKUpcombobox1.Text) else SQL := SQL + ' AND '+  '[ürünkodu]=' + QuotedStr(CXLOOKUpcombobox1.Text) ;
if trim(CXLOOKUpcombobox2.Text) <> '' then if SQL = '' then SQL := '[ürünadi]=' + QuotedStr(CXLOOKUpcombobox2.Text)  else SQL := SQL + ' AND '+  '[ürünadi]=' + QuotedStr(CXLOOKUpcombobox2.Text) ;

Adoquery2.Filtered :=False;
Adoquery2.Filter := SQL;
Adoquery2.Filtered :=True;
Arkadaşlar yukarda paylaşmış olduğum kod ile filtreleme yapıyorum 2 adet checkbox kullandım işaretli olduklarında filtreleme olayına tarihlerde dahil oluyor. şimdi buradaki sorunum şu checkboxlar işaretli iken her türlü filtreleme yapılıyor sorun çıkmıyor ancak checkboxlar işaretli değilken butona bastığım anda 'Yanlış türdeki değişkenler kabul edilebilir aralık dışında veya bir başkasıyla çakışan bağımsız değişkenler kullanılıyor.' hatasını alıyorum bu neden olabilir acaba yardımlarınız beklyorum cevaplarınız için şimdiden teşekkür ediyorum.

Kullandığım delphi sürümü :7
veritabanı:Access
ertank
Kıdemli Üye
Mesajlar: 1653
Kayıt: 12 Eyl 2015 12:45

Re: Filtreme Sorunu

Mesaj gönderen ertank »

Merhaba,

Eğer filtreleme yapmayacak iseniz Filtered := False kalması gerekir. Diğer bir deyişle, SQL = EmptyStr ise Filtered = False kalmalı.
Kontrollerinizi buna göre yapınca sorun düzelmesi gerekir.
bnyamin
Üye
Mesajlar: 44
Kayıt: 01 Mar 2019 12:55

Re: Filtreme Sorunu

Mesaj gönderen bnyamin »

Cevabınız için teşekkür ederim ama acemi olduğum için çok bir şey bilmiyorum şimdi checkbox işaretlendiğinde filtreye tarih de dahil olacak ama checkbox işaretlenmediğinde tarih filtreye dahil olmayacak ama ürün adı ve ürün kodu cxlookupcomboboxları filtreleme işlemine devam edecek işte burada sorun çıkıyor ürün kodu yada adını seçtiğimde butona basınca yukarıdaki hatayı alıyorum.(Not:Filtreleme işlemi aynı tablo içinde farklı alanlarda yapılıyor.)
ertank
Kıdemli Üye
Mesajlar: 1653
Kayıt: 12 Eyl 2015 12:45

Re: Filtreme Sorunu

Mesaj gönderen ertank »

Adoquery2.Filter := SQL;

Yukarıdaki satırdan önce aşağıdaki gibi içeriğini ekrana yazdırın. Doğru olup olmadığını kontrol edin.

Kod: Tümünü seç

ShowMessage(SQL);
Adoquery2.Filter := SQL;
Hatanın sebebini kodunuzda tespit edip düzeltmeniz daha kolay olacaktır.
Cevapla