AccessTr.neT
Vba İle Oluşturulan Sql Metninde "%" Karakterinin Kullanımı. - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Vba İle Oluşturulan Sql Metninde "%" Karakterinin Kullanımı. (/konu-vba-ile-olusturulan-sql-metninde-karakterinin-kullanimi.html)

Sayfalar: 1 2 3 4 5


Cvp: Vba İle Oluşturulan Sql Metninde "%" Karakterinin Kullanımı. - feraz - 04/02/2020

Gifi izleyiniz aceleden tam deneyememiştim.

Do Until ys2.EOF
    Liste1.AddItem ys2("F1").Value
    ys2.MoveNext
Loop

Önceki döngüyü yukarıdaki ile değiştirdim.
Sonuçta % yerine * kullanılmış oldu sorgu içinde.



[Resim: do.php?img=9526]
Private Sub Komut0_Click()

Dim ys2 As dao.Recordset

For z = Liste1.ListCount - 1 To 0 Step -1
    Liste1.RemoveItem (z)
Next z
metin = Metin3.Text
harf = "a b c ç d e f g ð h i ý j k l m n o ö p r s þ t u ü v y z"
harf = Split(harf, " ")
For i = 0 To UBound(harf)
If InStr(1, metin, harf(i)) = 0 Then
yharf = yharf & harf(i)
End If
Next

xx = "Select* From kelime Where F1 not Like '*[" & yharf & "]*'"

Set ys2 = CurrentDb.OpenRecordset(xx)


Do Until ys2.EOF
    Liste1.AddItem ys2("F1").Value
    ys2.MoveNext
Loop

End Sub

Private Sub Metin3_Change()
    Komut0_Click
End Sub



Cvp: Vba İle Oluşturulan Sql Metninde "%" Karakterinin Kullanımı. - feraz - 04/02/2020

Ayrıca döngü ile listboxu temizlemeye gerek yok.

For z = Liste1.ListCount - 1 To 0 Step -1
  Liste1.RemoveItem (z)
Next z


yerine
Liste1.RowSource = "" yazabilirsiniz.


Cvp: Vba İle Oluşturulan Sql Metninde "%" Karakterinin Kullanımı. - alicimri - 04/02/2020

Çok ilginç !!!!!!!!!!!!!!!!!!
"*" karakteri kullanarak oluşturulan aynı Sql metni; Ado ile seçilen harfleri içeren, Dao ile ise seçilen harflerden oluşan kelimeleri listeliyor.


Cvp: Vba İle Oluşturulan Sql Metninde "%" Karakterinin Kullanımı. - feraz - 04/02/2020

Ben bir excelde normal * olarak bir listeleteyim bakalım orda nasıl sonuç olacak DAO gibimi bakalım
Yani normal Vba kodu ile Sql siz


Cvp: Vba İle Oluşturulan Sql Metninde "%" Karakterinin Kullanımı. - feraz - 04/02/2020

(04/02/2020, 19:47)alicimri yazdı: Çok ilginç !!!!!!!!!!!!!!!!!!
"*" karakteri kullanarak oluşturulan aynı Sql metni; Ado ile seçilen harfleri içeren, Dao ile ise seçilen harflerden oluşan kelimeleri listeliyor.
Ado ile alttaki gibi kod yaptım DAO ile arasında fark olmadı.Sonuç aynı ikisindede.

Private Sub Komut0_Click()

Dim ys2 As New ADODB.Recordset

Liste1.RowSource = ""

metin = Metin3.Text

harf = "a b c ç d e f g ð h i ý j k l m n o ö p r s þ t u ü v y z"

harf = Split(harf, " ")
For i = 0 To UBound(harf)
If InStr(1, metin, harf(i)) = 0 Then
yharf = yharf & harf(i)
End If
Next

sorgu = "Select * From kelime Where F1 Not Like '%[" & yharf & "]%'"
ys2.Open sorgu, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

Do Until ys2.EOF
    Liste1.AddItem ys2("F1").Value
    ys2.MoveNext
Loop

End Sub

Private Sub Metin3_Change()
    Komut0_Click
End Sub



Cvp: Vba İle Oluşturulan Sql Metninde "%" Karakterinin Kullanımı. - alicimri - 04/02/2020

ADO ile DAO farklı sonuç "*" karakterini kullanınca ortaya çıkıyor.