Rubrik: Variablen/Strings · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 19.05.01 |
Sichere Datentyp-Umwandlung Mit Hilfe dieser Routine lassen sich Fehler bei einer Typenumwandlung vermeiden. | ||
Autor: Torsten Kerz | Bewertung: | Views: 18.834 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit den folgenden Routinen lassen sich Umwandlungsfehler effektiv vermeiden. Dies ist sowohl beim Auslesen von Einstellungen mittels GetSettings, als auch beim Auslesen von Datenbankfeldern sehr nützlich.
Über den optionalen Default-Parameter kann ein Vorgabewert angegeben werden, der im Fehlerfalle verwendet werden soll.
Sicher könnten Sie jetzt sagen: Visual-Basic liefert doch von Haus aus entsprechende Typen-Umwandlungsfunktionen, wie CStr, CLng, usw.
Aber: Wenden Sie die CStr-Funktion einmal an, wenn die der Funktion übergebeenen Variable den Inhalt NULL hat. In diesem und andern Fällen erhalten Sie stets einen Laufzeitfehler...
' Variable in Datentyp "String" umwandeln Public Function V2Str(vTemp As Variant, _ Optional Default As String) As String On Error Resume Next V2Str = CStr(vTemp) If Err.Number Then Err.Clear V2Str = Default End If End Function ' Variable in Datentyp "Boolean" umwandeln Public Function V2Bool(Value As Variant, _ Optional Default As Boolean) As Boolean On Local Error Resume Next V2Bool = CBool(Value) If Err.Number Then Err.Clear V2Bool = Default End If End Function ' Variable in Datentyp "Byte" umwandeln Public Function V2Byte(Value As Variant, _ Optional Default As Byte) As Byte On Local Error Resume Next V2Byte = CByte(Value) If Err.Number Then Err.Clear V2Byte = Default End If End Function ' Variable in Datentyp "Integer" umwandeln Public Function V2Int(Value As Variant, _ Optional Default As Integer) As Integer On Local Error Resume Next V2Int = CInt(Value) If Err.Number Then Err.Clear V2Int = Default End If End Function ' Variable in Datentyp "Long" umwandeln Public Function V2Lng(Value As Variant, _ Optional Default As Long) As Long On Local Error Resume Next V2Lng = CLng(Value) If Err.Number Then Err.Clear V2Lng = Default End If End Function ' Variable in Datentyp "Single" umwandeln Public Function V2Sng(Value As Variant, _ Optional Default As Single) As Single On Local Error Resume Next V2Sng = CSng(Value) If Err.Number Then Err.Clear V2Sng = Default End If End Function ' Variable in Datentyp "Double" umwandeln Public Function V2Dbl(Value As Variant, _ Optional Default As Double) As Double On Local Error Resume Next V2Dbl = CDbl(Value) If Err.Number Then Err.Clear V2Dbl = Default End If End Function ' Variable in Datentyp "Decimal" umwandeln Public Function V2Dec(Value As Variant) As Variant On Local Error Resume Next V2Dec = CDec(Value) If Err.Number Then Err.Clear V2Dec = CDec(0) End If End Function ' Variable in Datentyp "Currency" umwandeln Public Function V2Cur(Value As Variant, _ Optional Default As Currency) As Currency On Local Error Resume Next V2Cur = CCur(Value) If Err.Number Then Err.Clear V2Cur = Default End If End Function ' Variable in Datentyp "Date" umwandeln Public Function V2Date(Value As Variant, _ Optional Default As Date) As Date On Local Error Resume Next V2Date = CDate(Value) If Err.Number Then Err.Clear V2Date = Default End If End Function
Anwendungsbeispiel:
Dim sName as String Dim Rs as Recordset ' Datenbankinitialisierung ... sName = V2Str(Rs.Fields("Vorname").Value, "") ' oder sName = V2Str(Rs.Fields("Vorname").Value, "keine Angabe")