每個函式會強制將一個表達式強制到特定的資料型態。
語法
CBool (表達方式)
CByte (表達方式)
(表達式)
用CDate (表達)
CDbl (表達)
CDec (表達式)
(表情)
咔嚓 (表情)
CSng (表達式)
CStr (表達式)
CVar (表達式)
所需的表達式參數是任何字串表達式或數值表達式。
回報類型
函式名稱決定了返回類型,如下所示:
| 功能鍵 | 回傳類型 | 表達式參數的範圍 |
|---|---|---|
| CBool | 布林值 | 任何有效的 字串 或數字表達式。 |
| CByte | 位元組 | 0到255。 |
| CCur | 貨幣 | -922,337,203,685,477.5808 對 922,337,203,685,477.5807。 |
| CDate | 日期 | 任何有效的日期表達式。 |
| CDbl | Double | -1.79769313486231E308 負值為 -4.94065645841247E-324;正值為4.94065645841247E-324至1.79769313486232E308。 |
| CDec | Decimal | +/-79,228,162,514,264,337,593,543,950,335,對於零刻度數字,即無小數點的數字。 對於小數點數為 28 位的數字,範圍為 +/-7.9228162514264337593543950335. 最小的非零數字為 0.0000000000000000000000000001。 |
| CInt | 整數 | -32,768票對32,767票;分數是四捨五入的。 |
| CLng | 長篇 | -2,147,483,648票對2,147,483,647票;分數是四捨五入的。 |
| CSng | Single | 負值為-3.402823E38至-1.401298E-45;正值則為1.401298E-45至3.402823E38。 |
| CStr | String | CStr 的回傳取決於 表達 式參數。 |
| CVar | 變體 | 數字範圍和 Double 一樣。 對於非數字學者來說,範圍和 String 一樣。 |
註解
若傳遞給函式的 表達 式超出被轉換資料型態的範圍,則會發生錯誤。
一般來說,你可以用資料型別轉換函數來記錄程式碼,顯示某操作的結果應該以特定資料型態來表示,而非預設資料型態。 例如,使用 CCur 強制執行貨幣運算,當通常會發生單精度、雙精度或整數運算時。
你應該使用資料型別轉換函數,而非 Val ,來提供國際認可的資料型態轉換。 例如,當你使用 CCur 時,根據你電腦的地點設定,不同的十進位分隔符、不同的千分隔符和各種貨幣選項都能被正確識別。
當分數部分恰好為 0.5 時, Clint 和 CLng 總是將其四捨五入到最近的偶數。 例如,0.5 回合 0 次,1.5 回合 2。 Cint 與 CLng 不同於 Fix 和 Int 函式,後者截斷而非四捨五入的數字小數部分。 此外, Fix 和 Int 總是回傳與傳入的值類型相同。
使用 IsDate 函數 判斷日期是否 能轉換成日期或時間。 CDate 能辨識日期字面值、時間字面值,以及一些落在可接受日期範圍內的數字。 當將數字轉換為日期時,整個數字部分會被轉換成日期。 數字的任何小數部分會從午夜開始轉換成一天中的時間。
CDate 會根據你系統的地點設定辨識日期格式。 若以非認可日期設定格式提供,可能無法確定正確的日、月、年順序。 此外,若長日期格式同時包含星期幾字串,則不被認可。
同時也提供 CVDate 功能,以相容先前版本的 Visual Basic。 CVDate 函式的語法與 CDate 函式相同,但 CVDate 回傳的 Variant 子型別為 Date,而非實際的 Date 型別。 由於現在有內建 的日期 類型,因此不再需要 CVDate。 同樣的效果也可以透過將表達式轉換成 日期, 然後將其指派到 變體來達成。 此技術與所有其他內在型態轉換為其等效變 異 子型的做法一致。
注意
CDec 函式不會回傳離散資料型別;相反地,它總是回傳一個變體,其值已被轉換成十進位子型別。
查詢範例
| 運算式 | 結果 |
|---|---|
| 選擇銷售價格、最終價格、CBool (銷售價格最終價格>) 作為產品銷售的 Expr1; | 回傳「SalePrice」、「FinalPrice」,並評估 SalePrice 是否高於最終價格。 若為真,則回傳「-1」,若為假則回傳「0」。 |
| SELECT ProductID、CByte (數量) 作為 expr1 來自 productSales; | 回傳「ProductID」,將「Quantity」欄位的值轉換為位元組格式,並顯示在 Expr1 欄;回傳「ProductID」,將「Quantity」欄位的值轉換為貨幣格式,並顯示在 Expr1 欄。 |
| 選擇 ProductID, (DateofSale) 作為 Expr1 來自 productSales; | 回傳「ProductID」,將「DateofSale」欄位的值轉換為日期格式,並顯示在 Expr1 欄。 |
| SELECT ProductID、CDbl (折扣) 作為 productsales 的 Expr1; | 回傳「ProductID」,將「Discount」欄位的值轉換為 Double 格式,並顯示在 Expr1 欄位。 |
| 選擇產品ID, (折扣) 作為 productsales 的 Expr1; | 回傳「ProductID」,將「Discount」欄位的值轉換為整數格式,並顯示在 Expr1 欄位。 |
| SELECT ProductID, (折扣) 作為 productSales 的 Expr1; | 回傳「ProductID」,將「折扣」欄位的值轉換為長格式,並顯示在 Expr1 欄。 |
| SELECT ProductID,CSng (折扣) 作為 expr1 來自 productSales; | 回傳「ProductID」,將「折扣」欄位的值轉換為單一格式,並顯示在 Expr1 欄。 |
| SELECT ProductID,CStr (折扣) 作為 productSales 的 Expr1; | 回傳「ProductID」,將「折扣」欄位的值轉換為字串格式,並顯示在 Expr1 欄。 |
| 選擇產品ID、CVar (折扣) 作為產品銷售的Expr1; | 回傳「ProductID」,將「折扣」欄位的值轉換為 Double 表示數字值,String 表示非數字值。 |
VBA 範例
注意
下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 欲了解更多關於使用 VBA 的資訊,請參閱 Access VBA 參考資料。
CBool 功能
此範例使用 CBool 函數將表達式轉換為 布林值。 若運算式值非零, 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 函數將表達式轉換為 位元組。
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
CCur 功能
此範例使用 CCur 函式將表達式轉換為 貨幣。
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 函式將字串轉換為 日期。 一般而言,不建議將日期和時間硬編碼為字串 (,如本例所示) 。 改用日期字面值和時間字面值,例如 #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 函數將數值轉換為小數。
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Tin 功能
此範例使用 CInt 函數將值轉換為整 數。
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 函數將數值轉換為 字串。
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
CVar 函數
此範例使用 CVar 函數將表達式轉換為 變體。
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.