Jede Funktion wandelt einen Ausdruck in einen bestimmten Datentyp um.
Syntax
CBool( Ausdruck )
CByte( Ausdruck )
CCur( Ausdruck )
CDate( Ausdruck )
CDbl( Ausdruck )
CDec( Ausdruck )
CInt( Ausdruck )
CLng( Ausdruck )
CSng( Ausdruck )
CStr( Ausdruck )
CVar( Ausdruck )
Das erforderliche ArgumentAusdruck ist ein Zeichenfolgenausdruck oder ein Numerischer Ausdruck.
Rückgabetypen
Der Funktionsname bestimmt den Rückgabetyp (siehe folgende Tabelle):
Funktion |
Rückgabetyp |
Bereich für das Argument Ausdruck |
---|---|---|
CBool |
Boolean |
Beliebiger gültiger Zeichenfolgen- (string) oder numerischer Ausdruck. |
CByte |
Byte |
0 bis 255. |
CCur |
Currency |
-922.337.203.685.477,5808 bis 922.337.203.685.477,5807. |
CDate |
Date |
Beliebiger gültiger Datumsausdruck. |
CDbl |
Double |
-1.79769313486231E308 bis -4,94065645841247E-324 für negative Werte; 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte. |
CDec |
Decimal |
+/-79.228.162.514.264.337.593.543.950.335 für unskalierte Zahlen (d. h. Zahlen ohne Dezimalstellen). Bei Zahlen mit 28 Dezimalstellen ist der Bereich +/-7.9228162514264337593543950335. Die kleinstmögliche Zahl mit Dezimalstellen ist 0,0000000000000000000000000001. |
CInt |
Integer |
-32.768 bis 32.767; Brüche werden gerundet. |
CLng |
Long |
-2.147.483.648 bis 2.147.483.647; Brüche werden gerundet. |
CSng |
Single |
-3,402823E38 bis -1,401298E-45 für negative Wert und 1,401298E-45 bis 3,402823E38 für positive Werte. |
CStr |
String |
Die jeweilige Rückgabe für "CStr" hängt vom Argument Ausdruck ab. |
CVar |
Variant |
Derselbe Bereich wie für den Datentyp Double für numerische Werte. Derselbe Bereich wie für den Datentyp String für nicht numerische Werte. |
Hinweise
Liegt der Ausdruck, der an eine Funktion übergeben wird, außerhalb des Bereichs des Datentyps, in den konvertiert werden soll, tritt ein Fehler auf.
Grundsätzlich können Sie Ihren Code mit Funktionen zur Datentypumwandlung dokumentieren, um zu kennzeichnen, dass das Ergebnis eines Vorgangs mit einem bestimmten Datentyp und nicht mit einem Standarddatentyp angezeigt werden soll. Verwenden Sie beispielsweise CCur, um Währungsarithmetik für Fälle zu erzwingen, in denen normalerweise Arithmetik mit einfacher oder doppelter Genauigkeit oder Ganzzahlarithmetik auftreten würde.
Sie sollten die Funktionen zur Datentypumwandlung anstelle von Val verwenden, um für internationale Zusammenhänge geeignete Umwandlungen von einem Datentyp in einen anderen zur Verfügung zu stellen. Wenn Sie beispielsweise CCur verwenden, werden unterschiedliche Dezimaltrennzeichen, Tausendertrennzeichen und Währungsoptionen je nach Gebietsschemaeinstellung Ihres Computers richtig erkannt.
Wenn der jeweilige Bruchteil genau 0,5 beträgt, runden CInt und CLng ihn immer auf die nächste gerade Zahl. Beispielsweise wird 0,5 auf 0 und 1,5 auf 2 gerundet. CInt und CLng unterscheiden sich von den Funktionen Fix und Int, die den Bruchteil einer Zahl nicht runden, sondern abschneiden. Außerdem geben Fix und Int immer einen Wert zurück, dessen Typ mit dem des eingegebenen Werts identisch ist.
Verwenden Sie die IsDate-Funktion, um zu ermitteln, ob Datum in ein Datum oder eine Uhrzeit umgewandelt werden kann. CDate erkennt Datumsliterale und Uhrzeitliterale sowie einige Zahlen, die in den Bereich zulässiger Datumsangaben fallen. Beim Umwandeln einer Zahl in ein Datum wird der ganzzahlige Teil der Zahl in ein Datum umgewandelt. Der Bruchteil der Zahl wird in eine Tageszeit umgewandelt, die um Mitternacht beginnt.
CDate erkennt Datumsformate entsprechend den Gebietsschemaeinstellungen Ihres System. Die richtige Reihenfolge von Tag, Monat und Jahr kann möglicherweise nicht ermittelt werden, wenn ein Datumswert in einem Format bereitgestellt wird, das keiner der erkannten Datumseinstellungen entspricht. Außerdem wird ein langes Datumsformat nicht erkannt, wenn es auch die Zeichenfolge für den Wochentag enthält.
Aus Gründen der Kompatibilität mit früheren Versionen von Visual Basic wird außerdem die CVDate-Funktion bereitgestellt. Die Syntax der CVDate-Funktion ist identisch mit derjenigen der CDate-Funktion, CVDate gibt aber einen Variant-Wert, der den Untertyp Date hat, statt eines Wert mit Date-Typ zurück. Da es nun den systeminternen Date-Typ gibt, wird CVDate nicht mehr benötigt. Derselbe Effekt lässt sich erzielen, indem ein Ausdruck in einen Date-Wert umgewandelt und dieser anschließend einem Variant-Wert zugewiesen wird. Diese Vorgehensweise entspricht der Umwandlung aller anderen systeminternen Typen in ihre gleichwertigen Variant-Untertypen.
Hinweis: Die CDec-Funktion gibt keinen Wert mit einem einzelnen Datentyp, sondern immer einen Variant-Wert zurück, der in den Decimal-Untertyp umgewandelt wurde.
Abfragebeispiele
Ausdruck |
Ergebnisse |
---|---|
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
Gibt "SalePrice", "FinalPrice" zurück und bewertet, ob "SalePrice" größer als der Endgültige Preis ist. Gibt "-1" zurück, wenn "true" und "0" bei false. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Gibt "ProductID" zurück, konvertiert die Werte im Feld "Menge" in das Byteformat und zeigt in Spalte Expr1 Gibt "ProductID" zurück, konvertiert die Werte im Feld "Menge" in das Währungsformat und wird in Spalte Expr1 angezeigt. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Gibt "ProductID" zurück, konvertiert die Werte im Feld "DateofSale" in das Datumsformat und wird in Spalte Expr1 angezeigt. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Gibt "ProductID" zurück, konvertiert die Werte im Feld "Rabatt" in das Double-Format und wird in Spalte Expr1 angezeigt. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Gibt "ProductID" zurück, konvertiert die Werte im Feld "Discount" in das Integer-Format und wird in Spalte Expr1 angezeigt. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Gibt "ProductID" zurück, konvertiert die Werte im Feld "Rabatt" in das Long-Format und wird in Spalte Expr1 angezeigt. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Gibt "ProductID" zurück, konvertiert die Werte im Feld "Rabatt" in ein einzelnes Format und wird in Spalte Expr1 angezeigt. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Gibt "ProductID" zurück, konvertiert die Werte im Feld "Rabatt" in das Zeichenfolgenformat und wird in Spalte Expr1 angezeigt. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Gibt "ProductID" zurück, konvertiert die Werte im Feld "Discount" für numerische Werte in Double und String für nicht numerische Werte. |
VBA-Beispiele
Hinweis: Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Weitere Informationen zum Arbeiten mit VBA finden Sie unter Access VBA Reference.
CBool-Funktion
In diesem Beispiel wird die CBool-Funktion verwendet, um einen Ausdruck in einen Boolean-Wert umzuwandeln. Hat der Ausdruck einen Wert ungleich null, gibt CBool den Wert True, andernfalls den Wert False zurück.
Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.
CByte-Funktion
In diesem Beispiel wird die CByte-Funktion verwendet, um einen Ausdruck in einen Byte-Wert umzuwandeln.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
CCur-Funktion
In diesem Beispiel wird die CCur-Funktion verwendet, um einen Ausdruck in einen Currency-Wert umzuwandeln.
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)
' Convert result of MyDouble * 2 (1086.429176) to a
' Currency (1086.4292).
CDate-Funktion
In diesem Beispiel wird die CDate-Funktion verwendet, um einen Ausdruck in einen Date-Wert umzuwandeln. Im Grundsatz empfiehlt es sich nicht, Datums- und Uhrzeitangaben als feste Zeichenfolgen (wie im folgenden Beispiel gezeigt) zu codieren. Verwenden Sie stattdessen Datums- und Zeitliterale, z. B. #2/12/1969 # und #16:45:23#.
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM"
' Convert to Date data type.
MyShortTime = CDate(MyTime)
CDbl-Funktion
In diesem Beispiel wird die CDbl-Funktion verwendet, um einen Ausdruck in einen Double-Wert umzuwandeln.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
CDec-Funktion
In diesem Beispiel wird die CDec-Funktion verwendet, um einen Ausdruck in einen Decimal-Wert umzuwandeln.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
CInt-Funktion
In diesem Beispiel wird die CInt-Funktion verwendet, um einen Ausdruck in einen Integer-Wert umzuwandeln.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
CLng-Funktion
In diesem Beispiel wird die CLng-Funktion verwendet, um einen Ausdruck in einen Long-Wert umzuwandeln.
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.
CSng-Funktion
In diesem Beispiel wird die CSng-Funktion verwendet, um einen Ausdruck in einen Single-Wert umzuwandeln.
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.
CStr-Funktion
In diesem Beispiel wird die CStr-Funktion verwendet, um einen Ausdruck in einen String-Wert umzuwandeln.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
CVar-Funktion
In diesem Beispiel wird die CVar-Funktion verwendet, um einen Ausdruck in einen Variant-Wert umzuwandeln.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.