Heute ein wenig zum Thema SQL ... Wer bis heute gemeinhin geglaubt hat das ein LIKE im Visual Basic
sei das gleiche wie ein LIKE im SQL der sei beruhigt, es ist nicht so, ein LIKE im SQL
kann so z.B. keine unterscheidung zwischen Klein- u. Großbuchstaben treffen, überhaupt
bei Stringabfragen scheint SQL etwas träge zu sein, denn wer hätte es gedacht, auch eine
"Instr" Funktion unterscheidet diese nicht !
Hier nun einige SQL String´s zur Stringabfrage ...
Dim SqlSelect as String
[Einfacher Instr]
'Sucht in einem Feld nach entsprechenden Werten...
SqlSelect = "select * from TABELLE where instr('SUCHSTRING', SUCHFELD) > 0
[Erweiterter Instr1]
'Sucht in einem Feld nach entsprechenden Werten und berücksichtigt noch Werte eines
anderes Feldes...
SqlSelect = "select * from TABELLE where instr('SUCHSTRING', SUCHFELD) > 0 and
ANDERESFELD = '10'
[Erweiterter Instr2]
'Sucht in einem Feld nach entsprechenden Werten und berücksichtigt noch Werte eines
anderes Feldes wobei wiederum in einem dritten Feld kein "W" vorkommen darf...
SqlSelect = "select * from TABELLE where instr('SUCHSTRING', SUCHFELD) > 0 and
ANDERESFELD = '10' and ANDERESFELD1 not like 'W*'"
[Erweiterter Instr2]
'Sucht in einem Feld nach entsprechenden Werten und berücksichtigt noch Werte eines
anderes Feldes wobei wiederum in einem dritten Feld kein "W" vorkommen darf, und
der zeite Buchstabe des Vierten Feldes ein Großes L sein muss !! :-)
SqlSelect = "select * from TABELLE where instr('SUCHSTRING', SUCHFELD) > 0 and
ANDERESFELD = '10' and ANDERESFELD1 not like 'W*' and asc(mid(ANDERESFELD2,2,1)) =
asc('L')"
Hier nun noch der Code zum Aufruf der SQL Anweisung
Dim DB as Database
Dim RS as Recordset
Set DB = OpenDatabase(C:\"MyDatabase.mdb")
Set RS = DB.OpenRecordset(SqlString, dbOpenDynaset)
Viel Spaß beim probieren
Stephan
Besten Dank an unseren Datanbank Spezi SWMedici, der in
loser Folge schon den einen oder anderen guten Tipp zur Datenbankprogrammierung begesteuert
hat.
Und wer sich über die Begrenztheit von SQL Abfragen in VB beschwert, der soll es mal mit
ASP Programmierung versuchen, damit schlag ich mich gerade herum und es ist zum Haare
raufen. :-( |