Ado Filitreleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
digital_agels
Üye
Mesajlar: 114
Kayıt: 20 Ağu 2004 01:08

Ado Filitreleme

Mesaj gönderen digital_agels »

arkadaşlar öncelikle mdb veritabanında indexleme oluyormu onu sorim oluyorsa nasıl yapılıyor 2. filtreleme nasıl yapılıyor örneğin ürün barkodu 42 ile başlıyorsa bana 42 ile başlayan ürün barkodlarını listelicek ben paradozta yapıyordum mesela kodbank yapmıştım windows yazıyordum windows ile başlayan başlıkları bana listeliyordu adoda nasıl yapıyoruz bunu ?
Kurallara Uyalım Uymayanları Uyduralım .


Resim
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Ben uzun zamandır Access kullanıyorum.Bildiğim kadarı ile Access'in geliştirme aracında index ekleme birimi yok.Ancak sql kodları ile yapılabildiğini öğrendim.Eğer amacın kayıt buldurmaksa iki şekilde yapabilirsin.Bir dbgrid de verilerin listelendiğini düşünürsek :

Edit1 adında bir arama kutun olsun:

Edit1 in Change olayına

Kod: Tümünü seç

adotable1.locate(edit1.text,'aranan_field',[loPartialKey]);//uses kısmına db yi ekle
bu kod imleci uygun kayda götürür.

Bunun yanında

Kod: Tümünü seç

adotable1.filter:='field = deger';
adotable1.filtered:=true;
gibi bir kullanım da doğrudur. Ancak bu uygun kayıtları süzer ve sedece uygun kayıtlar ekranda kalır.
En son Ali Erdoğan tarafından 18 Nis 2005 11:17 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
digital_agels
Üye
Mesajlar: 114
Kayıt: 20 Ağu 2004 01:08

Mesaj gönderen digital_agels »

biraz daha açarmısınız amacım süzmek mesela filitreleme yaptırarak a ile başlayanları göstermek istiyorum buna benzer şeyler bu şekilde hata veriyor ayrıca Filitreleme yaptırtmak istediğim Alan 'Urun Barkodu' bu başlıkta arama yaptırtmak istiyorum
Kurallara Uyalım Uymayanları Uyduralım .


Resim
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Eğer barkod alanı string se:

Kod: Tümünü seç


Adotable1.filter:='fld_barkod = '''+edit1.text+'''';
Adotable1.Filtered:=true;

ile bu işlemi yürütebilirsin.Eğer nümerik olarak tutuyorsan tırnakları kaldır.
digital_agels
Üye
Mesajlar: 114
Kayıt: 20 Ağu 2004 01:08

Mesaj gönderen digital_agels »

bu gine hata veriyor :oops: nerde yanlış yaptım acaba

hata resmi

http://zemin.webgaranti.com/delphihata.JPG

bu arada barkod sayı olarak giriliyor ..
Kurallara Uyalım Uymayanları Uyduralım .


Resim
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Hocam borkod nümerikse tırnakları kaldırman gerekirdi.Hatanın sebebi:

Nümerik bir tip stringle karşılaştırmaya çalışman.


Yani Kod şöyle olmalı:

Kod: Tümünü seç

Adotable1.filter:='fld_barkod = '+edit1.text; 
Adotable1.Filtered:=true;
Ancak kullanıcı edit a yanlışlıkla rakam haricinde bir şey girerse yine hata alırsın.Bu yüzden edit1 in içeriğinin sadece rakam olduğunu doğrulat.


2. Hatan :

"urun barkodu" diye field ismi olmaz.Field isimlerinde boşluk kullanmak doğru değildir.Bunu "urun_barkodu" olarak değiştir
.
Cevapla