每個函式將表達式轉換為特定的資料型態。
語法
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 負值的 to -4.94065645841247E-324 ; 4.94065645841247E-324 正值的 to 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 負值的 to -1.401298E-45 ; 1.401298E-45 正值的 to 3.402823E38 。 |
CStr |
String |
回傳值取決於參數本身。expression |
CVar |
Variant |
範圍和 Double 數字值一樣。 範圍和 String 非數字值相同。 |
註解
如果傳給函式的值 expression 超出你要轉換的資料型態範圍,就會發生錯誤。
一般來說,你可以用資料型別轉換函數來記錄程式碼,顯示操作結果應該使用特定資料型別而非預設型別。 例如,在通常會進行單精度、雙精度或整數運算的情況下,用來 CCur 強制貨幣運算。
使用資料型別轉換功能,而非 Val 提供區域感知型別的轉換。 例如,當你使用 CCur時,Access 會根據你電腦的地點設定辨識不同的十進位分隔符、千分隔符和貨幣選項。
當分數部分正好 0.5為 時, CInt 且 CLng 總是將其四捨五入為最近的偶數。 例如, 0.5 四捨五入到 0,四 1.5 捨五入到 2。
CInt 且 CLng 與 Fix 和 Int 函數不同,後者截斷數字的分數部分而非四捨五入。
Fix 而且 Int 總是回傳你輸入的值類型相同。
使用該 IsDate 函數判斷是否 date 能轉換為日期或時間。
CDate 識別日期字面值與時間字面值,以及部分位於可接受日期範圍內的數字。 當你把數字轉換成日期時,整個數字部分就變成了日期。 任何分數部分都變成從午夜開始的時間。
CDate 會依照你的系統地點設定辨識日期格式。 如果你提供非認可日期設定的格式,Access 可能無法判斷正確的日、月、年順序。 此外,如果長日期格式同時包含星期幾字串,則無法辨識。
此 CVDate 函式也可與早期版本的 Visual Basic 相容。 的 CVDate 語法與函 CDate 數相同。 然而,回 CVDate 傳的子 Variant 型別是 , Date 而非實際 Date 型別。 因為 Access 現在包含了內在 Date 型態,你不再需要 CVDate。 你也可以透過將一個表達式轉換成 a Date ,再指派給 Variant。 此技術與其他內在類型轉換為其等效 Variant 子類型是一致的。
注意
這個 CDec 函式不會回傳離散資料型別。 相反地,它總是回傳 Variant 一個,而該值已被轉換成子 Decimal 型。
查詢範例
| Expression | 結果 |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
返回 SalePrice 和 FinalPrice,並評估 是否 SalePrice 大於 FinalPrice。 如果是真0,如果是假,則回傳-1。 |
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,將數值DiscountDouble轉換為 ,並將非數值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.