Suche mit SQL funktioniert in VB nicht

Chandini

Mitglied
Hallo...

Ich habe folgendes Problem:

Ich habe in VB ein Formular, in dem man in einer Access DB suchen kann.
Die Suche erfolgt dann über einen SQL-Befehl. Bei Access habe ich ja die Möglichkeit, mit * um den Suchbegriff auch nach ähnlichen Wörtern zu suchen.
Sobald die * da sind, klappt die Suche nicht mehr.

Hier mal ein Auszug aus meinem Code:

----------
Dim strSuche as String
strSuche = "*" & CStr(txtsuche.Text) & "*"

If cboSuche.ListIndex = 0 Then

Set rsSuche = New Recordset
rsSuche.Open "SELECT Kundennummer, Firma FROM tblKunden WHERE Kundennummer LIKE '" & strSuche & "';", con, AdOpenKeyset, AdLockOptimistic

Set dtaSuche.DataSource = rsSuche

Else

Set rsSuche = New Recordset
rsSuche.Open "SELECT Kundennummer, Firma FROM tblKunden WHERE Firma LIKE '" & strSuche & "';", con, AdOpenKeyset, AdLockOptimistic

Set dtaSuche.DataSource = rsSuche

End If
----------

Wenn ich die * um die Variable strSuche weglasse, dann klappt es.
Es geht dann aber auch nicht, dass ich die * im Suchfeld mit eingebe. Dann wird gar nichts gefunden.

Ich habe allerdings in einem anderen Formular eine ähnliche Lösung und da klappt es mit den * bei der Variable.

Ich hoff mal, ihr könnt mir weiterhelfen.

vlg, Ines
 
Funktioniert auch nicht.
Sobald ein * oder % davor steht, findet er nichts mehr.
Auch nicht, wenn ich den kompletten Suchbegriff hinschreib.

Ich denk mal, der sucht dann nach einem Wort, das mit * oder % anfängt. Und so eines steht halt nicht drin.
 
Ich habe jetzt nur mit SQL Abfragen über PHP an meine MySQL Datenbank gemacht. Also kann sein, das ich mich irre: Müsste die Abfrage nicht so lauten?
Code:
rsSuche.Open "SELECT `Kundennummer` , `Firma` FROM `tblKunden` WHERE `Kundennummer` LIKE '" & strSuche & "';", con, AdOpenKeyset, AdLockOptimistic
Ich meine nun, SQL ist SQL, und da dürfte sich doch nix am Syntax zu den verscheidenen Abfrage-Programmen ändern, oder?

mfg
 
Die Verwendung von * ist korrket.
Ich habe den Teil wo du den String zusammensetzt und dann in die SQL-Abfrage einbindest getestet und alle Ausgaben waren in meinem Beispiel korrekt.

Was sagt denn der Debugger dazu?

PS: SQL ist nicht gleich SQL. Da gibt es schon feine Unterschiede
 
Merlin_78 hat gesagt.:
... PS: SQL ist nicht gleich SQL. Da gibt es schon feine Unterschiede ...

... und auch sehr große Unterschiede sind möglich. Es gibt zwar eine gemeinsame SQL-Basis (Standard) aber jedes RDBMS hat seine zum Teil sehr speziellen Ausprägungen.
 
Ich versteh ja auch nicht, warum es nicht klappt.

Mit dem Debugger hab ich so noch net viel gemacht.
Wenn ich nen Haltepunkt bei der Abfrage setze und mir dann die Daten aus dem SQL String anschau, dann schreibt er mir schon den Wert aus der Variablen mit * drum rum rein.
Das sieht dann so aus '*Suchbegriff*'. Und das stimmt ja eigentlich.

Ich habe die Abfrage auch schon mal in Access eingefügt. Ohne Variable, aber den Suchbegriff mit *. Und da klappt es auch.
Die Hochkommas um die einzelnen Begriffe brauch ich nicht. Die hab ich auch bei keiner anderen SQL-Abfrage.
 
Zurück