Adotable birden fazla alanda filtreleme hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mali989
Üye
Mesajlar: 5
Kayıt: 23 Eki 2010 05:13

Adotable birden fazla alanda filtreleme hatası

Mesaj gönderen mali989 »

Meraba arkadaşalr aranıza yeni katıldım adotable ile birden fazla alanda filtrelme yapmak istiyorum am koda çalışmıyor

Kod: Tümünü seç

ADOTable2.Filter:='[Durumu]='+QuotedStr(ComboBox3.Text) and '[Bgnntrh]='+QuotedStr(Edit4.Text);
sadece and e kadar olan kısmı yazarsam çalılıyor ama böyle uzun olursa çalışmıyor.Amacım sadece bu güne ait kayıtları göstermek çıkan kayıtlar içerisnde bir daha filtreleme yaptırmak.
mali989
Üye
Mesajlar: 5
Kayıt: 23 Eki 2010 05:13

Re: Adotable birden fazla alanda filtreleme hatası

Mesaj gönderen mali989 »

Konuyu yanlış yere açmışım galiba özür dilerim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Adotable birden fazla alanda filtreleme hatası

Mesaj gönderen aslangeri »

@offtopic konu taşınmıştır.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Adotable birden fazla alanda filtreleme hatası

Mesaj gönderen mrmarman »

Tırnak karakterinde yanlışlık yapmışsınız.

Kod: Tümünü seç

ADOTable2.Filter:='[Durumu]=' + QuotedStr(ComboBox3.Text) + ' and [Bgnntrh]=' + QuotedStr(Edit4.Text);
şeklinde deneyin. Ayrıca sorgunuzu SQL ile AdoQuery üzerinde yaparsanız daha sağlıklı olacaktır. AND öncesinde bir boşluk bırakmayı ihmal etmeyin.

Tırnak karakterleriyle sıkıntı yaşıyorsanız aşağıdaki şekilde FORMAT fonksiyonunu da kullanabilirsiniz.

Kod: Tümünü seç

ADOTable2.Filter :=  Format( '[Durumu]= ''%s'' AND [Bgnntrh] = ''%s'' ', [ ComboBox3.Text, Edit4.Text] );
şeklinde
veya

Kod: Tümünü seç

ADOTable2.Filter :=  Format( '[Durumu]= %s AND [Bgnntrh] = %s ', [ QuotedStr(ComboBox3.Text), QuotedStr(Edit4.Text)] );
şeklinde de kullanabilirsiniz.
Resim
Resim ....Resim
mali989
Üye
Mesajlar: 5
Kayıt: 23 Eki 2010 05:13

Re: Adotable birden fazla alanda filtreleme hatası

Mesaj gönderen mali989 »

Çok teşekkür ederim oldu saat gibi çalışıyor birde mesela iki tarih arası filtrelem yaptığımız zaman ado table setrange kullanamıyoruz onun yerine ne kullana bilirm
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Adotable birden fazla alanda filtreleme hatası

Mesaj gönderen mrmarman »

BETWEEN kullanabilirsiniz.

Kod: Tümünü seç

 TARIH BETWEEN BasTarih AND BitTarih
şeklinde.
Resim
Resim ....Resim
mali989
Üye
Mesajlar: 5
Kayıt: 23 Eki 2010 05:13

Re: Adotable birden fazla alanda filtreleme hatası

Mesaj gönderen mali989 »

mrmarman yazdı:BETWEEN kullanabilirsiniz.

Kod: Tümünü seç

 TARIH BETWEEN BasTarih AND BitTarih
şeklinde.
teşekkür ederim ilgine ama bunu kullanamadım abi ya nasıl kullanacaz.yalnız sql değil delphi dili...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Adotable birden fazla alanda filtreleme hatası

Mesaj gönderen mrmarman »

Yine Filter içinde kullanacaksanız bu durumda AND sayısını arttırıp aşağıdaki şekilde yapın.

Kod: Tümünü seç

Edit5.Text := '01.01.2010';
Edit6.Text := '10.12.2010'; // gibisinden olursa
ADOTable2.Filter:='[Durumu]=' + QuotedStr(ComboBox3.Text) + ' and [Bgnntrh]=' + QuotedStr(Edit4.Text) + ' and TARIH >= ' + Edit5.Text + ' and TARIH <= ' + Edit6.Text;
Date tipinde bir değişkenden alıyorsanız, DateToStr( TarihDegiskeni ) deyip stringe çevirebilirsiniz.
Resim
Resim ....Resim
mali989
Üye
Mesajlar: 5
Kayıt: 23 Eki 2010 05:13

Re: Adotable birden fazla alanda filtreleme hatası

Mesaj gönderen mali989 »

Teşekkürler
Cevapla