Các hàm chuyển đổi kiểu

Áp dụng cho
Access cho Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Mỗi hàm chuyển đổi một biểu thức thành một kiểu dữ liệu cụ thể.

Cú pháp

  • CBool(expression)
  • CByte(expression)
  • CCur(expression)
  • CDate(expression)
  • CDbl(expression)
  • CDec(expression)
  • CInt(expression)
  • CLng(expression)
  • CSng(expression)
  • CStr(expression)
  • CVar(expression)

Đối số bắt buộc expression là bất kỳ chuỗi hay biểu thức số nào.

Các kiểu trả về

Tên hàm sẽ xác định kiểu trả về, như được hiển thị trong bảng sau đây:

Hàm Loại trả về Phạm vi cho đối expression số
CBool Boolean Bất kỳ chuỗi hay biểu thức số hợp lệ nào.
CByte Byte 0 đến 255.
CCur Currency -922,337,203,685,477.5808 đến 922,337,203,685,477.5807.
CDate Date Bất kỳ biểu thức ngày hợp lệ nào.
CDbl Double -1.79769313486231E308 to -4.94065645841247E-324 cho các giá trị âm; 4.94065645841247E-324 to 1.79769313486232E308 cho các giá trị dương.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 Đối với các số thang không hoặc số không có chữ số thập phân. Đối với các số có dấu 28 phẩy thập phân, phạm vi là .+/-7.9228162514264337593543950335 Số nhỏ nhất có thể khác 0 là .0.0000000000000000000000000001
CInt Integer -32,768 đến 32,767; phân số được làm tròn.
CLng Long -2,147,483,648 đến 2,147,483,647; phân số được làm tròn.
CSng Single -3.402823E38 to -1.401298E-45 cho các giá trị âm; 1.401298E-45 to 3.402823E38 cho các giá trị dương.
CStr String Giá trị trả về phụ thuộc vào đối expression số.
CVar Variant Cùng phạm vi như đối Double với giá trị số. Cùng phạm vi như đối String với các giá trị không phải là số.

Chú thích

Nếu giá trị được expression chuyển đến hàm nằm ngoài phạm vi của kiểu dữ liệu mà bạn đang chuyển đổi thành, sẽ xảy ra lỗi.

Thông thường, 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 để hiển thị rằng kết quả của một phép toán nên sử dụng một kiểu dữ liệu cụ thể thay vì kiểu mặc định. Ví dụ: dùng CCur để bắt buộc số học tiền tệ trong trường hợp số học chính xác đơn, chính xác kép hoặc số học số nguyên thường xảy ra.

Sử dụng các hàm chuyển đổi kiểu dữ liệu thay vì Val thực hiện các chuyển đổi theo phương thức ngôn ngữ 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, Access sẽ nhận dạng các dấu tách thập phân, dấu tách hàng nghìn và các tùy chọn tiền tệ khác nhau dựa trên cài đặt bản địa trong máy tính của bạn.

Khi phần thập phân chính xác , 0.5và CIntCLng luôn làm tròn đến số chẵn gần nhất. Ví dụ, làm 0.5 tròn đến 0, và 1.5 làm tròn đến 2. CIntvà CLng khác với các hàm AND IntFix vốn cắt cụt phần thập phân của một số thay vì làm tròn phần đó. Fix Đồng thời, Int luôn luôn trả về giá trị cùng kiểu mà bạn truyền vào.

Dùng IsDate hàm để xác định xem có thể chuyển đổi sang ngày hoặc giờ hay không date . CDate Nhận dạng chữ ngày và ký tự thời gian, cũng như một số nằm trong phạm vi ngày được chấp nhận. Khi bạn chuyển đổi một số sang ngày, phần nguyên của số sẽ trở thành ngày. Bất kỳ phần thập phân nào sẽ trở thành một thời điểm bắt đầu trong ngày vào lúc nửa đêm.

CDate Nhận dạng định dạng ngày theo thiết đặt bản địa hệ thống của bạn. Access có thể không xác định đúng thứ tự ngày, tháng và năm nếu bạn cung cấp một đị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, nó không nhận diện định dạng ngày dài nếu nó cũng chứa chuỗi ngày trong tuần.

Hàm này CVDate cũng có sẵn để tương thích với các phiên bản Visual Basic cũ hơn. Cú pháp của giống CVDate với CDate hàm. Tuy nhiên, sẽ CVDate trả về một kiểu Variant con của nó thay Date vì một kiểu thực tế Date . Vì Access hiện đã tích hợp kiểu nội tạiDate, bạn không còn cần .CVDate Bạn có thể có được hiệu ứng này bằng cách chuyển đổi một biểu thức thành a, Date rồi gán biểu thức cho một .Variant Kỹ thuật này phù hợp với việc chuyển đổi các kiểu nội tại khác thành các kiểu con tương đương Variant của chúng.

Lưu ý

Hàm CDec không trả về kiểu dữ liệu rời rạc. Thay vào đó, nó luôn trả về giá trị đã Variant được chuyển đổi thành Decimal kiểu con.

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 hàm and và FinalPriceđánh giá xem có lớn hơn FinalPricehay không SalePrice . Trả về -1 nếu đó là true và 0 nếu là false.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Trả về ProductID, chuyển đổi giá trị trong Quantity trường thành Byte, và hiển thị chúng trong Expr1 cột.
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Trả về ProductID, chuyển đổi giá trị trong DateofSale trường thành Date, và hiển thị chúng trong Expr1 cột.
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Trả về ProductID, chuyển đổi giá trị trong Discount trường thành Double, và hiển thị chúng trong Expr1 cột.
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Trả về ProductID, chuyển đổi giá trị trong Discount trường thành Integer, và hiển thị chúng trong Expr1 cột.
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Trả về ProductID, chuyển đổi giá trị trong Discount trường thành Long, và hiển thị chúng trong Expr1 cột.
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Trả về ProductID, chuyển đổi giá trị trong Discount trường thành Single, và hiển thị chúng trong Expr1 cột.
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Trả về ProductID, chuyển đổi giá trị trong Discount trường thành String, và hiển thị chúng trong Expr1 cột.
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Trả về ProductID, chuyển đổi giá trị số Discount thành Double, và chuyển đổi giá trị không phải dạng số thành .String

Ví dụ về VBA

Lưu ý

Các ví dụ sau đây trình bày 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 CBool hàm để chuyển đổi một biểu thức sang một biểu thức Boolean. Nếu biểu thức định trị giá trị khác không, trả CBool về ; Truenếu không, biểu thức 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 CByte hàm để chuyển đổi một biểu thức sang một biểu thức Byte.

Dim MyDouble, MyByte
MyDouble = 125.5678    ' MyDouble is a Double.
MyByte = CByte(MyDouble)    ' MyByte contains 126.

CCur (Hàm CCur)

Ví dụ này sử dụng CCur hàm để chuyển đổi một biểu thức sang một biểu thức Currency.

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 CDate hàm để chuyển đổi một chuỗi thành một .Date Thông thườ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, chúng tôi không được khuyến khích. Thay vào đó, hãy sử dụng ký tự ngày và nguyên dạng thời gian, như #2/12/1969# và , #4:45:23 PM#để thay thế.

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 CDbl hàm để chuyển đổi một biểu thức sang một biểu thức Double.

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 CDec hàm để chuyển đổi một giá trị số sang một .Decimal

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 CInt hàm để chuyển đổi một giá trị sang một .Integer

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 CLng hàm để chuyển đổi một giá trị sang một .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 (Hàm CSng)

Ví dụ này sử dụng CSng hàm để chuyển đổi một giá trị sang một .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.

Hàm CStr

Ví dụ này sử dụng CStr hàm để chuyển đổi một giá trị số sang một .String

Dim MyDouble, MyString
MyDouble = 437.324    ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

CVar (Hàm CVar)

Ví dụ này sử dụng CVar hàm để chuyển đổi một biểu thức sang một biểu thức Variant.

Dim MyInt, MyVar
MyInt = 4534    ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.