Mỗi hàm buộc một hàm biểu thức một hàm cụ thể kiểu dữ liệu.
Cú pháp
CBool( expression )
CByte( biểu_thức )
CCur( expression )
CDate( expression )
CDbl( expression )
CDec( biểu_thức )
CInt( biểu_thức )
CLng(biểu_ thức )
CSng(biểu_ thức )
CStr( biểu_thức )
CVar( biểu_thức )
Biểu thức bắt buộctham đối là bất kỳ giá biểu thức chuỗi hoặc biểu thức số.
Loại trả lại hàng
Tên hàm xác định kiểu trả về như minh họa trong phần sau đây:
Hàm |
Loại Trả về |
Phạm vi cho đối số biểu thức |
---|---|---|
CBool |
Boolean |
Bất kỳ chuỗi hoặc biểu thức số hợp lệ nào. |
CByte |
Byte |
0 đến 255. |
CCur |
Tiền |
-922.337.203.685.477,5808 đến 922.337.203.685.477,5807. |
CDate |
Ngày |
Bất kỳ biểu thức ngày hợp lệ nào. |
CDbl |
Kép |
-1,79769313486231E308 đến -4,94065645841247E-324 cho các giá trị âm; 4,94065645841247E-324 đến 1,79769313486232E308 cho các giá trị dương. |
CDec |
Decimal |
+/-79.228.162.514.264.337.593.543.950.335 cho các số có tỷ lệ bằng không, nghĩa là, các số không có chữ số thập phân. Đối với các số có 28 chữ số thập phân, phạm vi +/-7.9228162514264337593543950335. Số khác không nhỏ nhất có thể sử dụng là 0,0000000000000000000000000001. |
CInt |
Số nguyên |
-32.768 đến 32.767; phân số được làm tròn. |
CLng |
Dài |
-2.147.483.648 đến 2.147.483.647; phân số được làm tròn. |
CSng |
Đơn |
-3,402823E38 đến -1,401298E-45 cho các giá trị âm; 1,401298E-45 đến 3,402823E38 cho các giá trị dương. |
CStr |
Chuỗi |
Trả về cho CStr phụ thuộc vào tham đối biểu thức. |
CVar |
Phiên bản |
Cùng dải như kiểu Đúp đối với giá trị số. Cùng dải như kiểu Chuỗi đối với giá trị không phải số. |
Chú thích
Nếu biểu thức được chuyển đến hàm nằm ngoài phạm vi của kiểu dữ liệu đang được chuyển đổi sang, sẽ xảy ra lỗi.
Nói chung, bạn có thể ghi lại mã của mình bằng cách sử dụng các hàm chuyển đổi kiểu dữ liệu để cho thấy rằng kết quả của một số thao tác nên được thể hiện dưới dạng một kiểu dữ liệu cụ thể thay vì kiểu dữ liệu mặc định. Ví dụ: sử dụng CCur để bắt buộc số học tiền tệ trong trường hợp số học đơn chính xác, độ chính xác kép hoặc số nguyên thường xảy ra.
Bạn nên sử dụng các hàm chuyển đổi kiểu dữ liệu thay vì Val để cung cấp các chuyển đổi nhận thức quốc tế từ kiểu dữ liệu này sang kiểu dữ liệu khác. Ví dụ: khi bạn sử dụng CCur, các dấu tách thập phân khác nhau, dấu tách hàng nghìn khác nhau và các tùy chọn tiền tệ khác nhau được nhận diện đúng tùy thuộc vào thiết đặt bản địa của máy tính.
Khi phần thập phân chính xác là 0,5, CInt và CLng luôn làm tròn nó đến số chẵn gần nhất. Ví dụ, 0,5 làm tròn thành 0 và 1,5 làm tròn tới 2. CInt và CLng khác với hàm Fix và Int , vốn bị cắt bớt, chứ không phải là làm tròn phần thập phân của một số. Ngoài ra, Fixvà Int luôn trả về giá trị có cùng kiểu như được đưa vào.
Dùng hàm IsDate để xác định xem ngày có thể được chuyển đổi thành ngày hoặc thời gian hay không. CDate nhận dạng ký tự ngày và ký tự thời gian cũng như một số số nằm trong phạm vi của các ngày được chấp nhận. Khi chuyển đổi một số thành ngày, phần số nguyên sẽ được chuyển thành ngày. Bất kỳ phần phân số nào của số sẽ được chuyển thành thời điểm trong ngày, bắt đầu vào nửa đêm.
CDate nhận dạng định dạng ngày theo cài đặt bản địa hệ thống của bạn. Không thể xác định thứ tự ngày, tháng và năm chính xác nếu được cung cấp theo định dạng khác với một trong các thiết đặt ngày được nhận dạng. Ngoài ra, một định dạng ngày dài không được nhận dạng nếu nó cũng chứa chuỗi ngày trong tuần.
Hàm CVDate cũng được cung cấp để tương thích với các phiên bản Visual Basic trước. Cú pháp của hàm CVDate giống với hàm CDate , tuy nhiên, CVDate trả về một Biến _thể có kiểu con là Ngày thay vì kiểu Ngày thực tế. Vì hiện đã có kiểu Ngày nội tại, không cần phải sử dụng CVDate nữa. Có thể đạt được cùng một hiệu ứng bằng cách chuyển đổi một biểu thức thành Ngày, rồi gán nó cho một Biến _thể. Kỹ thuật này phù hợp với việc chuyển đổi tất cả các loại nội tại khác thành các kiểu con Biến_thể tương đương.
Lưu ý: Hàm CDec không trả về kiểu dữ liệu riêng biệt; thay vào đó, nó luôn trả về một Biến _thể có giá trị đã được chuyển đổi thành kiểu con Thập phân.
Ví dụ về truy vấn
Biểu thức |
Kết quả |
---|---|
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
Trả về "SalePrice", "FinalPrice" và đánh giá nếu SalePrice lớn hơn Giá Cuối cùng. Trả về "-1" nếu true và "0" nếu false. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Trả về "PRODUCTID",chuyển đổi các giá trị trong trường "Số lượng" thành định dạng byte và hiển thị trong cột Expr1 Trả về "ProductID",chuyển đổi các giá trị trong trường "Số lượng" thành định dạng Tiền tệ và hiển thị trong cột Expr1. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Trả về "ProductID",chuyển đổi các giá trị trong trường "DateofSale" thành định dạng Ngày và hiển thị trong cột Expr1. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Trả về "ProductID", chuyển đổi các giá trị trong trường "Chiết khấu" thành định dạng Đôi và hiển thị trong cột Expr1. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Trả về "ProductID",chuyển đổi các giá trị trong trường "Chiết khấu" thành định dạng Số nguyên và hiển thị trong cột Expr1. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Trả về "ProductID", chuyển đổi các giá trị trong trường "Chiết khấu" thành định dạng Dài và hiển thị trong cột Expr1. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Trả về "ProductID", chuyển đổi các giá trị trong trường "Chiết khấu" thành định dạng Đơn và hiển thị trong cột Expr1. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Trả về "ProductID",chuyển đổi các giá trị trong trường "Chiết khấu" thành định dạng Chuỗi và hiển thị trong cột Expr1. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Trả về "ProductID",chuyển đổi các giá trị trong trường "Chiết khấu" thành Giá trị đôi cho giá trị số và Chuỗi cho các giá trị Không phải số. |
Ví dụ về VBA
Lưu ý: Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, hãy xem Tham khảo về VBA trong Access.
Hàm CBool
Ví dụ này sử dụng hàm CBool để chuyển đổi một biểu thức thành boolean. Nếu biểu thức định trị một giá trị khác không, CBool trả vềTrue; nếu không, nó trả về 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.
Hàm CByte
Ví dụ này sử dụng hàm CByte để chuyển đổi một biểu thức thành byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Hàm CCur
Ví dụ này sử dụng hàm CCur để chuyển đổi một biểu thức thành Tiền tệ.
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).
Hàm CDate
Ví dụ này sử dụng hàm CDate để chuyển đổi một chuỗi thành Ngày. Nói chung, không nên dùng ngày và giờ mã hóa cứng dưới dạng chuỗi (như minh họa trong ví dụ này). Thay vào đó, hãy sử dụng ký tự ngày và ký tự thời gian, chẳng hạn như #12/02/1969# và #4:45:23 CH#.
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)
Hàm CDbl
Ví dụ này sử dụng hàm CDbl để chuyển đổi một biểu thức thành giá trị kiểu Đúp.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Hàm CDec
Ví dụ này sử dụng hàm CDec để chuyển đổi giá trị số thành Số thập phân.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Hàm CInt
Ví dụ này sử dụng hàm CInt để chuyển đổi một giá trị thành Số nguyên.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Hàm CLng
Ví dụ này sử dụng hàm CLng để chuyển đổi một giá trị thành 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.
Hàm CSng
Ví dụ này sử dụng hàm CSng để chuyển đổi một giá trị thành Một đơn.
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.
Hàm CStr
Ví dụ này sử dụng hàm CStr để chuyển đổi giá trị số thành Chuỗi.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Hàm CVar
Ví dụ này sử dụng hàm CVar để chuyển đổi một biểu thức thành một Biến _thể.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.