Access, Sorgu Filtrelemesinde Alandaki Tüm Bilgilerin Sorgulanması Komutu Nedir

1 2 3 4 5 6 7
19/03/2020, 12:16

berduş

çerçevenin adı cerArama olarak değiştirildi
görünmez arama kutuları silindi
ayrıca bilgi seçiliyken boş değerleri göstermek için arama kutusuna NULL yazmanız yeterli
isterseniz başka bir değerle değiştirebilirsiniz
dilerim işinize yarar
Dim Aranan As String
Dim SqlAra, SqlKrt As String

SqlAra = " SELECT tblKayitlar.kayitNo, tblKayitlar.adiSoyadi, tblKayitlar.yasi, tblKayitlar.bilgi" & _
        " FROM tblKayitlar"
         
Aranan = txtAramaKutusu.Text
    If cerArama = 1 Then
        SqlKrt = " WHERE (((tblKayitlar.adiSoyadi) like '*" & Aranan & "*'))"
    ElseIf cerArama = 2 Then
        If InStr(Aranan, "<") = 0 And InStr(Aranan, ">") = 0 And InStr(Aranan, "=") = 0 Then xAranan = "=" Else xAranan = ""
        Aranan = Replace(Replace(Aranan, "=<", "<="), "=>", ">=")
        SqlKrt = " WHERE (((tblKayitlar.yasi) " & xAranan & Aranan & "))"
    Else
        SqlKrt = " WHERE (((tblKayitlar.bilgi) like '*" & Aranan & "*'))"
        If Aranan = "Null" Then SqlKrt = " WHERE (((tblKayitlar.bilgi) is null))"
    End If
       
        If Len(Nz(Aranan, "")) = 0 Then SqlKrt = ""

        SqlAra = SqlAra & SqlKrt & " ORDER BY tblKayitlar.adiSoyadi"
        lstKayitListesi.RowSource = SqlAra
19/03/2020, 12:18

feraz

Merhaba.
ilk kodları


Case 2 içindeki

GWhere = "WHERE (((yasi)" & [Forms]![frmKayitlar]![txtAdiSoyadiGecici] & "))"

yerine alttaki gibi değişince eşittir olarak bulunuyor.Bunun gibi değişiklikler olacak.Tam eklerken berduş hocamız eklemiş
GWhere = "WHERE yasi=" & [Forms]![frmKayitlar]![txtAdiSoyadiGecici]
19/03/2020, 12:32

berduş

13. mesajdaki dosya güncelledim
19/03/2020, 12:33

feraz

(19/03/2020, 12:16)berduş yazdı: çerçevenin adı cerArama olarak değiştirildi
görünmez arama kutuları silindi
ayrıca bilgi seçiliyken boş değerleri göstermek için arama kutusuna NULL yazmanız yeterli
isterseniz başka bir değerle değiştirebilirsiniz
dilerim işinize yarar
Dim Aranan As String
Dim SqlAra, SqlKrt As String

SqlAra = " SELECT tblKayitlar.kayitNo, tblKayitlar.adiSoyadi, tblKayitlar.yasi, tblKayitlar.bilgi" & _
        " FROM tblKayitlar"
         
Aranan = txtAramaKutusu.Text
    If cerArama = 1 Then
        SqlKrt = " WHERE (((tblKayitlar.adiSoyadi) like '*" & Aranan & "*'))"
    ElseIf cerArama = 2 Then
        If InStr(Aranan, "<") = 0 And InStr(Aranan, ">") = 0 And InStr(Aranan, "=") = 0 Then xAranan = "=" Else xAranan = ""
        Aranan = Replace(Replace(Aranan, "=<", "<="), "=>", ">=")
        SqlKrt = " WHERE (((tblKayitlar.yasi) " & xAranan & Aranan & "))"
    Else
        SqlKrt = " WHERE (((tblKayitlar.bilgi) like '*" & Aranan & "*'))"
        If Aranan = "Null" Then SqlKrt = " WHERE (((tblKayitlar.bilgi) is null))"
    End If
       
        If Len(Nz(Aranan, "")) = 0 Then SqlKrt = ""

        SqlAra = SqlAra & SqlKrt & " ORDER BY tblKayitlar.adiSoyadi"
        lstKayitListesi.RowSource = SqlAra
Sayın berduş hocam bence eksiğiniz var.>= gibi koşullarda araya and koşulunu eklemeyi unutmuşşunuz.
Ara kutusuna >14<20 gibi yazarsanız anlarsınız demek istediğimi .)
19/03/2020, 12:39

berduş

@feraz bey dediğiniz durum sayı<16 ve sayı>9 gibi bir ifade de doğru ama ben aralığı almadım sadece büyük yada küçük gibi tek yönlü bir koşul aldım
dedikleriniz tabi ki eklenebilir ama şu durumda kullanıcı kaynaklı hata yapma olasılığı çok yüksek iki ifade arasına ";" eklenerek aralık belirlenip durum ayarlanabilir ama dediğim gibi mevcut durumda kullanıcı kaynaklı hatalar işlerin karışmasına neden olabilir ama tabi ki istek olursa eklenebilir
19/03/2020, 12:47

feraz

>14<20 yazıncada 14 listeleniyor.
Normalde mantıken operatörler içinde optionbuttonlar olması en mantıklısı.
Arasında olarakta between de kullanılabilir bence abey.
1 2 3 4 5 6 7