每個函數都會將運算式轉換為特定的資料類型。
語法
CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)
必要的 expression 引數是任何字串或數字運算式。
傳回類型
函數名稱決定傳回類型,如下表所示:
| 功能 | 傳回類型 | 引數範圍expression |
|---|---|---|
CBool |
Boolean |
任何有效的字串或數字運算式。 |
CByte |
Byte |
0 變成 255。 |
CCur |
Currency |
-922,337,203,685,477.5808 變成 922,337,203,685,477.5807。 |
CDate |
Date |
任何有效的日期運算式。 |
CDbl |
Double |
-1.79769313486231E308 為 -4.94065645841247E-324 負值為 to; 4.94065645841247E-324 為 1.79769313486232E308 正值。 |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 適用於零縮放數字或沒有小數位數的數字。 對於有 28 小數位數的數字,範圍為 +/-7.9228162514264337593543950335。 最小可能的非零數是 0.0000000000000000000000000001。 |
CInt |
Integer |
-32,768 到 32,767; 分數會四捨五入。 |
CLng |
Long |
-2,147,483,648 到 2,147,483,647; 分數會四捨五入。 |
CSng |
Single |
-3.402823E38 為 -1.401298E-45 負值為 to; 1.401298E-45 為 3.402823E38 正值。 |
CStr |
String |
傳回值取決於 expression 引數。 |
CVar |
Variant |
與數值相同的範圍 Double 。 與非數值相同的範圍 String 。 |
註解
如果傳遞給函數的 expression 值超出您要轉換的目標資料類型範圍,則會發生錯誤。
一般而言,您可以使用資料類型轉換函式來記錄程式碼,以顯示作業結果應使用特定的資料類型,而非預設類型。 例如,在 CCur 通常會出現單精度、雙精度或整數算術的情況下,用來強制貨幣算術。
使用資料類型轉換函數 INSTEAD 來 Val 提供從一種資料類型到另一種資料類型的地區設定感知轉換。 例如,當您使用 CCur時,Access 會根據您電腦的地區設定來辨識不同的小數點分隔符號、千位分隔符號和貨幣選項。
當小數部分正好 0.5是 時 CInt ,請 CLng 一律將其四捨五入到最接近的偶數。 例如, 0.5 四捨五入為 0,四 1.5 捨五入為 2。
CInt 與 CLng and FixInt 函數不同,後者截斷數字的小數部分而不是四捨五入。
Fix 並且 Int 一律傳回您傳入的相同類型的值。
使用函數來 IsDate 判斷 date 是否可以轉換為日期或時間。
CDate 可辨識日期常值和時間常值,以及一些在可接受日期範圍內的數字。 當您將數字轉換成日期時,整數部分會變成日期。 任何小數部分都會變成從午夜開始的時間。
CDate 根據系統地區設定來辨識日期格式。 如果您提供不是其中一個辨識的日期設定的格式,Access 可能無法判斷正確的日、月和年順序。 此外,如果長日期格式也包含星期幾字串,則它無法辨識該格式。
函數 CVDate 也可與舊版 Visual Basic 相容。 的 CVDate 語法與函數相同 CDate 。 不過, CVDate 會傳回 a Variant 的子類型 Date 而非實際 Date 類型。 由於 Access 現在包含內建 Date 類型,因此您不再需要 CVDate。 您可以將運算式轉換為 a Date ,然後將其指派給 Variant. 該技術與將其他內在類型轉換為其等效 Variant 子類型是一致的。
注意
CDec函數不會傳回離散資料類型。 相反地,它一律會傳回 a Variant 的值已轉換成 Decimal 子類型。
查詢範例
| Expression | 結果 |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
傳回 SalePrice 和 FinalPrice,並評估 SalePrice 是否大於 FinalPrice。 如果為 True0,則傳回 -1 False。 |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
傳回 ProductID,會將欄位Byte中的Quantity值轉換為 ,並顯示在資料行中Expr1。 |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
傳回 ProductID,會將欄位Date中的DateofSale值轉換為 ,並顯示在資料行中Expr1。 |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
傳回 ProductID,會將欄位Double中的Discount值轉換為 ,並顯示在資料行中Expr1。 |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
傳回 ProductID,會將欄位Integer中的Discount值轉換為 ,並顯示在資料行中Expr1。 |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
傳回 ProductID,會將欄位Long中的Discount值轉換為 ,並顯示在資料行中Expr1。 |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
傳回 ProductID,會將欄位Single中的Discount值轉換為 ,並顯示在資料行中Expr1。 |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
傳回 ProductID,會將欄位String中的Discount值轉換為 ,並顯示在資料行中Expr1。 |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
傳回 ProductID,會將數 Discount 值轉換成 Double,並將非數值轉換成 String。 |
VBA 範例
注意
下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需有關使用 VBA 的詳細資訊,請參閱 Access VBA 參考。
CBool 函數
此範例會使用函數將 CBool 運算式轉換成 Boolean。 如果運算式的值不是零 CBool ,則傳回 True;否則傳回 False。
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 函數
此範例會使用函數將 CByte 運算式轉換成 Byte。
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
CCur 函數
此範例會使用函數將 CCur 運算式轉換成 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 函數
此範例會使用 CDate 函數將字串轉換成 Date。 一般而言,不建議將日期和時間硬式編碼為字串,如本範例所示。 請改用日期常值和時間常值,例如 #2/12/1969# 和 #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 函數
此範例會使用函數將 CDbl 運算式轉換成 Double。
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
CDec 函數
此範例會使用此 CDec 函數將數值轉換成 Decimal。
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
CInt 函數
此範例會使用此 CInt 函數將值轉換成 Integer。
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
CLng 函數
此範例會使用此 CLng 函數將值轉換成 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 函數
此範例會使用此 CSng 函數將值轉換成 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 函數
此範例會使用此 CStr 函數將數值轉換成 String。
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
CVar 函數
此範例會使用函數將 CVar 運算式轉換成 Variant。
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.