每個函數都會將 運算式 強制轉換為特定 資料類型。
語法
CBool ( 運算式 )
CByte ( 運算式 )
CCur ( 運算式 )
CDate ( expression )
CDbl ( 運算式 )
CDec ( 運算式 )
CInt ( 運算式 )
CLng ( 運算式 )
CSng ( 運算式 )
CStr ( 運算式 )
CVar ( 運算式 )
所需的運算式引數 為任何 字串運算式 或 數值運算式。
傳回類型
函數名稱會判斷傳回類型, 如下所示:
函數 | 傳回類型 | 範圍 運算式 引數 |
---|---|---|
CBool |
布林值 |
任何有效的字串或數值運算式。 |
CByte |
位元組 |
0到255。 |
CCur |
貨幣 |
-922337203685477.5808 到922337203685477.5807。 |
CDate |
日期 |
任何有效的日期運算式。 |
CDbl |
Double |
-1.79769313486231 308 to |
CDec |
Decimal |
+/-79228162514264337593543950335, 適用于零刻度數位, 也就是沒有小數位數的數位。 對於有28個小數位數的數位, |
CInt |
整數 |
-32768 到 32767;分數會四捨五入。 |
CLng |
遠 |
-2147483648 到 2147483647;分數會四捨五入。 |
CSng |
Single |
-3.402823 e 38 to-1.401298 E-45 的負值;1.401298 e-45 來 3.402823 e 38 以取得正值。 |
CStr |
String |
CStr 的傳回值取決於expression引數。 |
CVar |
變型 |
數位的範圍與Double一樣。 非數值型的字串範圍相同。 |
註解
如果傳遞給函數的運算式在要轉換成的資料類型範圍之外, 則會發生錯誤。
一般來說, 您可以使用資料類型轉換函數來記錄您的程式碼, 以顯示某些運算的結果應該表示為特定的資料類型, 而不是預設的資料類型。 例如, 在通常會發生單精確度、雙精度或整數運算的情況下, 使用CCur來強制進行貨幣運算。
您應該使用資料類型轉換函數 (而不是Val ), 以提供從某種資料類型到另一個資料類型的國際感知轉換。 例如, 當您使用 [ CCur] 時, 不同的小數點分隔符號、不同的千分位分隔符號, 且根據電腦的地區設定, 就能正確辨識各種貨幣選項。
當小數部分正好是0.5 時, CInt與CLng會將它四捨五入到最接近的偶數。 例如, 0.5 會四捨五入為 0, 而1.5 會四捨五入為2。 CInt與CLng不同于修正和Int函數, 這些函數截斷而不是四捨五入到數位的小數部分。 此外,修正和Int總是傳回與傳遞相同類型的值。
使用IsDate函數來判斷日期是否可以轉換為日期或時間。 CDate會辨識日期文字與時間文字, 以及在可接受的日期範圍內的部分數位。 將數位轉換成日期時, 整個數位部分會轉換成日期。 數位的任何小數部分都會轉換成一天的時間, 從午夜開始。
CDate會根據您的系統 地區設定 設定來識別日期格式。 如果以 [可辨識的日期] 設定以外的格式提供, 則日期、月份和年份的正確順序可能不會判斷。 此外, 如果它也包含星期幾字串, 則無法辨識長日期格式。
也提供CVDate函數, 以與舊版 Visual Basic 相容。 CVDate函數的語法與CDate函數相同, 但CVDate會傳回子類型為Date而非實際日期類型的變數。 由於現在已有固有的日期類型, 因此CVDate沒有任何其他需求。 將運算式轉換為日期,然後將它指派給Variant, 就能達到相同的效果。 這項技術與所有其他固有類型的轉換, 都與其對等的變數子類型是一致的。
附註: CDec函數不會傳回離散的資料類型;相反地, 它總是傳回值已轉換成十進位子類型的變數。
查詢範例
運算式 | 結果 |
---|---|
從 FinalPrice 選取 [SalePrice]、[FinalPrice]、[CBool] (SalePrice>ProductSales) 作為運算式 1; |
傳回 "SalePrice", "FinalPrice", 然後評估 SalePrice 是否大於最終價格。 如果 true, 則傳回 "-1", 如果為 false, 則傳回 "0"。 |
從 productSales 選取 [ProductID, CByte (數量)] 做為運算式 1; |
傳回「ProductID」, 將 [數量] 欄位中的值轉換為 bytes 格式, 並顯示在 column 運算式1中傳回 "ProductID", 將 [數量] 欄位中的值轉換為貨幣格式, 並顯示在 [欄 1] 中。 |
從 productSales 選取 [ProductID, CDate (DateofSale)] 做為運算式 1; |
傳回 "ProductID", 將 "DateofSale" 欄位中的值轉換為日期格式, 並顯示在欄運算式1中。 |
從 productSales 中選取 [ProductID, CDbl (折扣)] 做為運算式1。 |
傳回「ProductID」, 將 [折扣] 欄位中的值轉換成雙重格式, 並顯示在欄運算式1中。 |
從 productSales 中選取 [ProductID, CInt (折扣)] 做為運算式1。 |
傳回「ProductID」, 將 [折扣] 欄位中的值轉換成整數格式, 並顯示在 [欄 1] 中。 |
從 productSales 選取 [ProductID, CLng (折扣)] 做為運算式 1; |
傳回「ProductID」, 將 [折扣] 欄位中的值轉換成長格式, 並顯示在欄運算式1中。 |
從 productSales 選取 [ProductID, CSng (折扣)] 做為運算式 1; |
傳回「ProductID」, 將 [折扣] 欄位中的值轉換為單一格式, 並顯示在欄運算式1中。 |
從 productSales 中選取 [ProductID, CStr (折扣)] 做為運算式1。 |
傳回「ProductID」, 將 [折扣] 欄位中的值轉換成字串格式, 並顯示在欄運算式1中。 |
從 productSales 選取 [ProductID, CVar (折扣)] 做為運算式 1; |
傳回 "ProductID", 將數位值的值和非數值的字串轉換為 Double。 |
VBA 範例
附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。
CBool 函數
提示: 在 Access 2010 中開始使用 IntelliSense 的運算式建立器可協助您正確取得運算式。
這個範例使用CBool函數, 將 expression 轉換為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函數, 將 expression 轉換為Byte。
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.
CInt 函數
這個範例使用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函數, 將值轉換成單一值。
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函數來將運算式轉換成Variant。
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.
附註: 本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。 讓這些內容對您有所幫助是我們的目的。 告訴我們這項資訊是否有幫助? 這裡是供您參考的英文文章。