類型轉換函數

每個函數都會將 運算式 強制轉換為特定 資料類型。

語法

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
-4.94065645841247 e-324 的負值;4.94065645841247 e-324 來 1.79769313486232 e 308 以取得正值。

CDec

Decimal

+/-79228162514264337593543950335, 適用于零刻度數位, 也就是沒有小數位數的數位。 對於有28個小數位數的數位,
範圍為 +/-7.9228162514264337593543950335。 最小的非零數字為 0.0000000000000000000000000001。

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 時, CIntCLng會將它四捨五入到最接近的偶數。 例如, 0.5 會四捨五入為 0, 而1.5 會四捨五入為2。 CIntCLng不同于修正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.

附註:  本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。 讓這些內容對您有所幫助是我們的目的。 告訴我們這項資訊是否有幫助? 這裡是供您參考的英文文章

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×