[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Datentypumwandlung in SQL-Format

Sprache / Programm: Access ab Version 97
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

Wert

In SQL umzuwandelnder Wert.

DatenTyp.

Typ des Wertes. Zugelassen sind die Datenbankkonstanten dbDate, dbBoolean, die numerischen Datentypen dbByte, dbInteger, dbLong, dbCurrency, dbSingle, dbDouble. Andere Datentypen werden in Textdaten umgewandelt.

Wenn kein DatenTyp angegeben wird, versucht das Programm selbst den optimalen Typ herauszufinden

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.