Elke functie converteert een expressie naar een specifiek gegevenstype.
Syntaxis
CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)
Het vereiste expression argument is een tekenreeks of numerieke expressie.
Retourtypen
De functienaam bepaalt het retourtype, zoals wordt weergegeven in de volgende tabel:
| Functie | Retourtype | Bereik voor expression argument |
|---|---|---|
CBool |
Boolean |
Elke geldige tekenreeks- of numerieke expressie. |
CByte |
Byte |
0 naar 255. |
CCur |
Currency |
-922,337,203,685,477.5808 naar 922,337,203,685,477.5807. |
CDate |
Date |
Elke geldige datumexpressie. |
CDbl |
Double |
-1.79769313486231E308 voor -4.94065645841247E-324 negatieve waarden; 4.94065645841247E-324 aan voor 1.79769313486232E308 positieve waarden. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 voor getallen met een schaal van nul of getallen zonder decimalen. Voor getallen met 28 decimalen is +/-7.9228162514264337593543950335het bereik . Het kleinst mogelijke niet-nultal is 0.0000000000000000000000000001. |
CInt |
Integer |
-32,768 op ; 32,767breuken worden afgerond. |
CLng |
Long |
-2,147,483,648 op ; 2,147,483,647breuken worden afgerond. |
CSng |
Single |
-3.402823E38 voor -1.401298E-45 negatieve waarden; 1.401298E-45 aan voor 3.402823E38 positieve waarden. |
CStr |
String |
De retourwaarde is afhankelijk van het expression argument. |
CVar |
Variant |
Hetzelfde bereik als Double voor numerieke waarden. Hetzelfde bereik als String voor niet-numerieke waarden. |
Opmerkingen
Als de expression doorgegeven aan de functie zich buiten het bereik van het gegevenstype bevindt waarnaar u wilt converteren, treedt er een fout op.
Over het algemeen kunt u uw code documenteren met behulp van conversiefuncties voor gegevenstypen om aan te geven dat het resultaat van een bewerking een bepaald gegevenstype moet gebruiken in plaats van het standaardtype. Gebruik CCur bijvoorbeeld om valutaberekening af te dwingen in gevallen waarin berekeningen met één precisie, dubbele precisie of geheel getal normaal gesproken voorkomen.
Gebruik de conversiefuncties voor gegevenstypen in plaats van Val om landinstellingbewuste conversies van het ene gegevenstype naar het andere te bieden. Wanneer u bijvoorbeeld gebruikt CCur, herkent Access verschillende decimale scheidingstekens, scheidingstekens voor duizendtallen en valutaopties op basis van de landinstelling van uw computer.
Wanneer het breukdeel precies 0.5is, CInt en CLng rond het altijd af op het dichtstbijzijnde even getal. Rondt bijvoorbeeld 0.5 af op 0en 1.5 rondt af op 2.
CInt en CLng verschillen van de Fix functies en Int , die het breukgedeelte van een getal afkappen in plaats van het af te ronden.
Fix en Int retourneert ook altijd een waarde van hetzelfde type dat u doorgeeft.
Gebruik de IsDate functie om te bepalen of date kan worden geconverteerd naar een datum of tijd.
CDate herkent letterlijke datums en letterlijke tijd, evenals enkele getallen die binnen het bereik van acceptabele datums vallen. Wanneer u een getal converteert naar een datum, wordt het gehele getalgedeelte een datum. Elk breukdeel wordt een tijdstip van de dag dat begint om middernacht.
CDate herkent datumnotaties op basis van de landinstelling van uw systeem. Mogelijk bepaalt Access niet de juiste volgorde van dag, maand en jaar als u een andere notatie opgeeft dan een van de herkende datuminstellingen. Bovendien wordt een lange datumnotatie niet herkend als deze ook de tekenreeks dag-van-de-week bevat.
De CVDate functie is ook beschikbaar voor compatibiliteit met eerdere versies van Visual Basic. De syntaxis van CVDate is identiek aan de CDate functie. Retourneert echter CVDate een Variant waarvan het subtype is Date in plaats van een werkelijk Date type. Omdat Access nu een intrinsiek Date type bevat, hebt u niet meer nodig CVDate. U kunt hetzelfde effect krijgen door een expressie te converteren naar een Date en deze vervolgens toe te wijzen aan een Variant. Deze techniek is consistent met de conversie van andere intrinsieke typen naar hun equivalente Variant subtypen.
Opmerking
De CDec functie retourneert geen discreet gegevenstype. In plaats daarvan wordt altijd een geretourneerd waarvan de Variant waarde is geconverteerd naar een Decimal subtype.
Queryvoorbeelden
| Expression | Resultaten |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
Retourneert SalePrice en en evalueert of SalePrice groter is dan FinalPriceFinalPrice. Retourneert -1 als het waar is en 0 als het onwaar is. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Retourneert ProductID, converteert de waarden in het Quantity veld naar Byteen geeft ze weer in de Expr1 kolom. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Retourneert ProductID, converteert de waarden in het DateofSale veld naar Dateen geeft ze weer in de Expr1 kolom. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Retourneert ProductID, converteert de waarden in het Discount veld naar Doubleen geeft ze weer in de Expr1 kolom. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Retourneert ProductID, converteert de waarden in het Discount veld naar Integeren geeft ze weer in de Expr1 kolom. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Retourneert ProductID, converteert de waarden in het Discount veld naar Longen geeft ze weer in de Expr1 kolom. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Retourneert ProductID, converteert de waarden in het Discount veld naar Singleen geeft ze weer in de Expr1 kolom. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Retourneert ProductID, converteert de waarden in het Discount veld naar Stringen geeft ze weer in de Expr1 kolom. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Retourneert ProductID, converteert numerieke Discount waarden naar Doubleen converteert niet-numerieke waarden naar String. |
VBA-voorbeelden
Opmerking
In de volgende voorbeelden ziet u hoe u deze functie gebruikt in een VBA-module (Visual Basic for Applications). Zie de toegangs-VBA-verwijzing voor meer informatie over het werken met VBA.
CBool, functie
In dit voorbeeld wordt de CBool functie gebruikt om een expressie te converteren naar een Boolean. Als de expressie een niet-nulwaarde oplevert, CBool wordt geretourneerd True. Anders wordt Falsegeretourneerd.
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, functie
In dit voorbeeld wordt de CByte functie gebruikt om een expressie te converteren naar een Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
CCur, functie
In dit voorbeeld wordt de CCur functie gebruikt om een expressie te converteren naar een Currency.
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, functie
In dit voorbeeld wordt de CDate functie gebruikt om een tekenreeks te converteren naar een Date. Over het algemeen wordt het niet aanbevolen datums en tijden als tekenreeksen te coderen, zoals in dit voorbeeld wordt weergegeven. Gebruik in plaats daarvan letterlijke datums en letterlijke tijdsteksten, zoals #2/12/1969# en #4:45:23 PM#.
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, functie
In dit voorbeeld wordt de CDbl functie gebruikt om een expressie te converteren naar een Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
CDec, functie
In dit voorbeeld wordt de CDec functie gebruikt om een numerieke waarde te converteren naar een Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
CInt, functie
In dit voorbeeld wordt de CInt functie gebruikt om een waarde te converteren naar een Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
CLng, functie
In dit voorbeeld wordt de CLng functie gebruikt om een waarde te converteren naar een Long.
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, functie
In dit voorbeeld wordt de CSng functie gebruikt om een waarde te converteren naar een Single.
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, functie
In dit voorbeeld wordt de CStr functie gebruikt om een numerieke waarde te converteren naar een String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
CVar, functie
In dit voorbeeld wordt de CVar functie gebruikt om een expressie te converteren naar een Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.