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

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

berduş

Ekledigim dosya zaten öyleydi)
Durumu bildiğim için yazmanıza şaşırmıştım, bitirdiğinizi düşünmüştüm o nedenle
Kolay gelsin, iyi çalışmalar.
19/03/2020, 16:51

feraz

Daha bitmedi maliesef Biraz kafa dağıtmak için takulayım dedim buraya.

Öncedende yazdığım gibi >14<20 gibi yazınca sizin dosyada 14 de listeleniyordu o yüzden select case ile yaptım.

Sağolunuz sizede.
19/03/2020, 18:40

berduş

@feraz bey bence çalışmanıza eklenmesi gereken tek kod
Aranan = Replace(Replace(Aranan, "=<", "<="), "=>", ">=")
çünkü Access eşittirin yeri değişince maalesef hatalı sonuç veriyor
19/03/2020, 19:07

feraz

Hata verir tabii üstadım eşittir zaten < yada > bunun sağında olur her yerde bu kural geçerlidir.Tabii biz anladığmız için biliyoruz bu kuralı bilmeyen için güzel tespit etmilsiniz.

Önceki mesajımdada dediğim gibi bu operatörler için en iyi yöntem seçenekler eklenip ordan filtrelenmeli bu örnekte güzel oldu.

Ayrıca bir insanoğlunun >> gibi yazma ihtimalide var O konulara hiç bulaşmadım
19/03/2020, 19:10

berduş

(19/03/2020, 19:07)feraz yazdı: Ayrıca bir insanoğlunun >> gibi yazma ihtimalide var 19. mesajdaki ek güncellenmiştir. Sayın @feraz 'ın kullandığı yaş için harf engeli eklenmiştir dosya
19/03/2020, 20:04

feraz

(19/03/2020, 13:03)berduş yazdı: Aşağıdaki gibi düzenlenirse olabilir araya ; koyulunca sorun kalmaz
Dim Aranan As String
Dim SqlAra, SqlKrt As String
Dim Aralik As Variant

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, "=<", "<="), "=>", ">=")
        If InStr(Aranan, ";") > 0 Then
        Aralik = Split(Aranan, ";")
            SqlKrt = " WHERE (((tblKayitlar.yasi) " & xAranan & Aralik(0) & ") and ((tblKayitlar.yasi) " & xAranan & Aralik(1) & "))"
        Else
            SqlKrt = " WHERE (((tblKayitlar.yasi) " & xAranan & Aranan & "))"
        End If
   
    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
aşağıdaki kod eklenmiştir
kod sayın @feraz 'a aittir
Private Sub txtAramaKutusu_KeyPress(KeyAscii As Integer)

    If cerArama = 2 Then
        Select Case KeyAscii
            Case 48 To 57, 8, 60, 61, 62 '8 silme 60 < ,62 >,61 =
        Case Else
            KeyAscii = 0
            MsgBox "Sadece >,<,= ve rakamlar girilebilir...", vbCritical, "Hata"
        End Select
    End If

End Sub
Hata bulmaktan kendi dosyamla uğraşamıyorum


1 2 3 4 5 6 7