Rubrik: Datenbanken · Sonstiges | VB-Versionen: VB5, VB6 | 02.11.06 |
Feldinhalte im SQL-Statement ersetzen Tipp, der zeigt, wie man bereits in der SQL-Anweisung Feldinhalten durch eigene Werte ersetzen kann. | ||
Autor: Peter Abrell | Bewertung: | Views: 10.329 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Angenommen, Sie haben eine Access-Datenbank, in der im Datenfeld 'Anrede' nicht 'Herr', 'Frau', 'Firma' etc. steht, sondern nur eine Zahl, die den Inhalt definiert (z.B. 1='Herr', 2='Frau' usw.).
Das könnte z.B. der Fall sein, wenn die möglichen Anredevarianten in einer getrennten INI-Datei geführt werden.
Die Anzeige dieser Daten bspw. im DataGrid hat hier dann den unschönen Effekt, dass im Feld Anrede auch nur 1,2 ... angezeigt wird, und nicht 'Herr', 'Frau' ... etc.
Dies lässt sich aber mit einer eingebundenen Switch-Funktion im SQL-Abfragestring umgehen. In Verbindung mit ADO und einer Acessdatenbank (Provider = "Microsoft.Jet.OLEDB.4.0") klappt das
einwandfrei.
Beispiel:
SQLString="SELECT Switch(1,'Herr',2,'Frau') FROM Kunden"
Die Abfrage mit diesem SQLString ausführen und damit ein Recordset erstellen, dann das Recordset mit dem Datagrid verbinden (Wie dies gemacht wird, ist hier schon mehrfach beschrieben worden ...).
Jetzt zeigt das Datagrid anstatt 1 'Herr', anstatt 2 ' Frau' an, wobei der ursprüngliche Wert im Recordset unverändert bleibt, nur die Anzeige im DataGrid ist eben angepasst.
Nähere Erläuterungen zu der Switch-Funktion (und insbesondere zu der Argumentliste) in der Online-Hilfe von VB.