Benutzung auf eigene Gefahr ! |
Beschreibung |
Wenn man in VBA Abfragen konstruiert, kommt man irgendwann an den Punkt, an dem Vergleiche in SQL formuliert werden müssen. Allerdings erwartet SQL Datentypen in amerikanisierter Schreibweise, während für die QBE-Entwurfsansicht europäische Konventionen gelten. Dieses Unterprogramm führt die Umwandlung von deutscher Schreibweise in eine für SQL geeignete Form durch. Funktionsname und Arbeitsweise sind an die üblichen Konvertierungsfunktionen (Cint, CCur, Cdate usw.) angelehnt. |
VBA-Quelltext |
' SQL erwartet Datentypen In amerikanisierter Schreibweise, während für die ' QBE-Entwurfsansicht europäische Konventionen gelten. ' Dieses Unterprogramm führt die Umwandlung von deutscher Schreibweise zu SQL durch Public Function CSql(Wert, Optional DatenTyp = Null) If IsNull(DatenTyp) Then DatenTyp = TypeName(Wert) Select Case DatenTyp Case dbDate, "Date" If IsDate(Wert) Then CSql = "#" & Format(CDate(Wert), "mm\/dd\/yyyy" & IIf(Wert = Int(Wert), "", " hh:nn:ss AM/PM")) & "#" Else CSql = Null End If Case dbBoolean, "Boolean" If CBool(Wert) Then CSql = "TRUE" Else CSql = "FALSE" Case dbByte, "Byte", dbInteger, "Integer", dbLong, "Long" If IsNumeric(Wert) Then CSql = CStr(Fix(Wert)) Else CSql = Null Case dbCurrency, "Currency", dbSingle, "Single", dbDouble, "Double" If IsNumeric(Wert) Then CSql = CStr(Fix(Wert)) Wert = Wert - Fix(Wert) If Wert <> 0 Then CSql = CSql & "." & Mid(Wert, 3) Else CSql = Null End If Case Else CSql = IIf(InStr(1, Wert, "'"), """" & Wert & """", "'" & Wert & "'") End Select End Function |
Argumente der Funktion/Prozedur |
|
Rückgabewert |
Text, der den Datentyp in SQL darstellt oder ein Fehlerwert. |
Anwendungsgebiete, Fehler und Warnungen |
Das Programm erwartet Eingaben, die in der gegenwärtig eingestellten Landesversion gültig sind. |