Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

語法

CBool ( 表示 式)

CByte ( 表示 式)

CCur ( 表示 式)

CDate ( 表示 式)

CDbl ( 表示 式)

CDec ( 表示 式)

CInt ( 表示 式)

CLng ( 表示 式)

CSng ( 表示 式)

CStr ( 表示 式)

CVar ( 表示 式)

必要的 表達 式引數 是任何 字串運算式 或 數值運算式。

退貨類型

函數名稱會決定傳回類型,如下所示:

功能

退貨類型

expression 自變數的範圍

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 時, CIntCLng 一律會將它四捨五入到最接近的偶數。 例如,0.5 會四捨五入至 0,而 1.5 四捨五入至 2。 CIntCLngFixInt 函數不同,後者會截斷數位的分數部分,而非四捨五入。 此外, 修正Int 一律會傳回與傳送類型相同的值。

使用 IsDate 函數來判斷 日期 是否可以轉換成日期或時間。 CDate 會辨識日期常值和時間常值,以及一些介於可接受日期範圍內的數位。 將數字轉換成日期時,整數部分會轉換成日期。 數位的任何小數部分都會轉換成一天中的時間,從午夜開始。

CDate 會 根據系統 地區設定 設定來辨識日期格式。 日、月和年的正確順序可能無法判斷是否以可辨識的日期設定以外的格式提供。 此外,如果長日期格式也包含每周的日期字串,則無法辨識該格式。

CVDate 函數也提供與舊版 Visual Basic 相容。 CVDate 函數的語法與 CDate 函數相同,不過 CVDate 會傳回其子類型為 [日期] 而非實際 [日期] 類型的 Variant。 由於現在有固有的 日期 類型,因此不再需要 CVDate。 將表達式轉換為 [日期], 然後將表達式指派給 Variant,即可達到相同的效果。 此技術與所有其他內固類型轉換為其相等 Variant 子類型是一致的。

附註:  CDec 函數不會傳回獨立數據類型;它一律會傳回其值已轉換為數子類型的 Variant

查詢範例

Expression

結果​​

SELECT SalePrice,FinalPrice,CBool (SalePrice>FinalPrice) AS Expr1 FROM productSales;

傳回 “SalePrice”、“FinalPrice”,並評估SalePrice是否大於 Final Price。 如果為 true,則傳回 “-1”,如果為 false 則傳回 “0”。

SELECT ProductID, CByte (Quantity) AS Expr1 FROM productSales;

傳回 「ProductID」,將 [數量] 欄位中的值轉換為位元組格式,並在欄運算式1 中顯示傳回 「ProductID」,將 [數量] 欄位中的值轉換為 [貨幣] 格式,並在欄運算式1 中顯示。

SELECT ProductID, CDate (DateofSale) AS Expr1 FROM productSales;

傳回 「ProductID」,將 「DateofSale」 欄位中的值轉換為 [日期] 格式,並顯示在 [表達式1] 欄中。

SELECT ProductID, CDbl (Discount) AS Expr1 FROM productSales;

傳回 「ProductID」,將 [折扣] 欄位中的值轉換為雙格式,並顯示在欄運算式1 中。

SELECT ProductID, CInt (Discount) AS Expr1 FROM productSales;

傳回 「ProductID」,將 [折扣] 欄位中的值轉換為整數格式,並顯示在欄運算式1 中。

SELECT ProductID, CLng (Discount) AS Expr1 FROM productSales;

傳回 「ProductID」,將「折扣」欄位中的值轉換為長格式,並顯示在欄表達式1 中。

SELECT ProductID, CSng (Discount) AS Expr1 FROM productSales;

傳回 「ProductID」,將 [折扣] 欄位中的值轉換為單一格式,並顯示在欄表達式1 中。

SELECT ProductID, CStr (Discount) AS Expr1 FROM productSales;

傳回 「ProductID」,將 「折扣」欄位中的值轉換為字串格式,並顯示在欄表達式1 中。

SELECT ProductID, CVar (Discount) AS Expr1 FROM productSales;

傳回 「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.

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 函數將值轉換為 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.

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。