Cvp: Access, Sorgu Filtrelemesinde Alandaki Tüm Bilgilerin Sorgulanması Komutu Nedir - berduş - 19/03/2020
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, 59, 8, 60, 61, 62 '8 silme 60 < ,62 >,61 =,59 ;
Case Else
KeyAscii = 0
MsgBox "Sadece >,<,= ve rakamlar girilebilir...", vbCritical, "Hata"
End Select
End If
End Sub
Cvp: Access, Sorgu Filtrelemesinde Alandaki Tüm Bilgilerin Sorgulanması Komutu Nedir - bukalemun - 19/03/2020
(19/03/2020, 11:04)ozanakkaya yazdı: Örnek uygulamanızı Site Kurallarına uygun olarak yeni cevap sayfasında "Ekler" kısmından ekleyebilirsiniz. Gönderdiğim örnek uygulamayı tam da istediğim gibi kodlamışsınız, çok teşekkür ediyorum.
Benim paylaşımıma anında müdahil olan berduş arkadaşıma da ayrıca çok teşekkürler ediyorum.
Ayrıca yükleme hususunda da vermiş olduğunuz bilgi için de çok teşekkür ederim.
Saygılarımla..
Cvp: Access, Sorgu Filtrelemesinde Alandaki Tüm Bilgilerin Sorgulanması Komutu Nedir - bukalemun - 19/03/2020
Sayın berduş arkadaşım; vermiş olduğun; bilgi için sana çok teşekkür ediyorum.
Saygılarımla..
Cvp: Access, Sorgu Filtrelemesinde Alandaki Tüm Bilgilerin Sorgulanması Komutu Nedir - berduş - 19/03/2020
iyi çalışmalar
Cvp: Access, Sorgu Filtrelemesinde Alandaki Tüm Bilgilerin Sorgulanması Komutu Nedir - bukalemun - 19/03/2020
sayın @feraz, verdiğiniz bilgi için size çok teşekkür ederim.
Saygılarımla.
Cvp: Access, Sorgu Filtrelemesinde Alandaki Tüm Bilgilerin Sorgulanması Komutu Nedir - feraz - 19/03/2020
Rica ederiz üstad mesajlara bakmamıştım berduş hocamızın kodlarını biraz değiştirmiştim.
Bu kodlara göre > yada < ve rakam haricinde veri girilme yasağı koydum yaş için.
Arama kutusu boşsa tümünü listelemede oldu gif önceden eklendiği için orda çıkmıyor.
Private Sub txtAramaKutusu_Change()
Dim Aranan As String, xx As Byte, yy As Byte
Dim SqlAra, SqlKrt As String, parcaAl As String
Dim i As Integer, kelime As String, bul As Integer, bul2 As Integer, bul3 As Integer
SqlAra = " SELECT tblKayitlar.kayitNo, tblKayitlar.adiSoyadi, tblKayitlar.yasi, tblKayitlar.bilgi" & _
" FROM tblKayitlar"
Aranan = txtAramaKutusu.text
kelime = vbNullString
If cerArama = 1 Then
SqlKrt = " WHERE (((tblKayitlar.adiSoyadi) like '*" & Aranan & "*'))"
ElseIf cerArama = 2 Then 'Yas icin
If Aranan <> "" Or Not IsNull(Aranan) Then
For i = 1 To Len(Aranan)
If Mid(Aranan, i, 1) = ">" Or Mid(Aranan, i, 1) = "<" Or Mid(Aranan, i, 1) = "=" Then
kelime = kelime & Mid(Aranan, i, 1)
End If
Next
On Error GoTo son
Select Case kelime
Case ">", "<", "<=", ">="
SqlKrt = SqlAra & " WHERE tblKayitlar.yasi " & Aranan & ""
Case "><"
bul = InStr(1, Aranan, ">") + 1
bul2 = InStrRev(Aranan, "<")
xx = Mid(Aranan, bul, bul2 - bul)
yy = Mid(Aranan, bul2 + 1, Len(Aranan))
SqlKrt = SqlAra & " WHERE tblKayitlar.yasi > " & xx & " And tblKayitlar.yasi < " & yy & ""
Case ">=<="
bul = InStr(1, Aranan, "=") + 1
bul2 = InStrRev(Aranan, "<")
bul3 = InStrRev(Aranan, "=")
xx = Mid(Aranan, bul, bul2 - bul)
yy = Mid(Aranan, bul3 + 1, Len(Aranan))
SqlKrt = SqlAra & " WHERE tblKayitlar.yasi Between " & xx & " And " & yy & ""
Case Else
SqlKrt = SqlAra & " WHERE tblKayitlar.yasi" & "=" & Aranan & ""
End Select
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 = ""
If Aranan = "" Or IsNull(Aranan) Then GoTo enson
' SqlAra = SqlAra & SqlKrt & " ORDER BY tblKayitlar.adiSoyadi"
If cerArama = 1 Then
lstKayitListesi.RowSource = SqlAra & SqlKrt & " ORDER BY tblKayitlar.adiSoyadi"
ElseIf cerArama = 2 Then
lstKayitListesi.RowSource = SqlKrt & " ORDER BY tblKayitlar.adiSoyadi"
Else
lstKayitListesi.RowSource = SqlAra & SqlKrt & " ORDER BY tblKayitlar.adiSoyadi"
End If
Exit Sub
son:
lstKayitListesi.RowSource = vbNullString
Exit Sub
enson:
lstKayitListesi.RowSource = SqlAra & " ORDER BY tblKayitlar.adiSoyadi"
End Sub
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
|