Vba İle Oluşturulan Sql Metninde "%" Karakterinin Kullanımı.

1 2 3 4 5
04/02/2020, 17:10

feraz

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.




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
04/02/2020, 19:27

feraz

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.
04/02/2020, 19:47

alicimri

Ç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.
04/02/2020, 20:13

feraz

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
04/02/2020, 22:05

feraz

(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
04/02/2020, 23:20

alicimri

ADO ile DAO farklı sonuç "*" karakterini kullanınca ortaya çıkıyor.
1 2 3 4 5