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 expression buộc là bất kỳ chuỗi hoặc biểu thức số nào.

Loại trả lại hàng

Tên hàm xác định kiểu trả về, như minh họa trong bảng sau đây:

Hàm Loại trả lại hàng 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 đối với -4.94065645841247E-324 giá trị âm; 4.94065645841247E-324 đối với 1.79769313486232E308 giá trị dương.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 đối với các số có tỷ lệ bằng không hoặc các số không có chữ số thập phân. Đối với các số 28 có vị trí thập phân, phạm vi là +/-7.9228162514264337593543950335. Số nhỏ nhất có thể 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 đối với -1.401298E-45 giá trị âm; 1.401298E-45 đối với 3.402823E38 giá trị dương.
CStr String Giá trị trả về phụ thuộc vào đối expression số.
CVar Variant Cùng dải như đối Double với giá trị số. Cùng phạm vi String với các giá trị không phải là số.

Chú thích

Nếu hàm expression được 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 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 kết quả của một thao tác nên sử dụng một kiểu dữ liệu cụ thể thay vì kiểu mặc định. Ví dụ: CCur sử dụng để bắt buộc số học tiền tệ trong trường hợp mà số học đơn chính xác, độ chính xác kép hoặ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 cung cấp chuyển đổi nhận biết bản địa từ kiểu dữ liệu này sang kiểu dữ liệu khác. Ví dụ CCur: khi bạn sử dụng , Access sẽ nhận ra các dấu tách thập phân khác nhau, hàng nghìn dấu tách và tùy chọn tiền tệ dựa trên thiết đặt bản địa máy tính của bạn.

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

Dùng hàm IsDate để xác định xem có date thể chuyển đổi thành ngày hay thời gian hay không. CDate nhận ra 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 bạn chuyển đổi một số thành ngày, phần số nguyên sẽ trở thành ngày. Bất kỳ phần thập phân nào cũng sẽ trở thành thời điểm trong ngày bắt đầu vào nửa đêm.

CDate nhận dạng các định dạng ngày theo thiết đặt ngôn ngữ 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 đị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 ra định dạng ngày dài nếu nó cũng chứa chuỗi ngày trong tuần.

Hàm CVDate này 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 CVDate giống hệt hàm CDate . Tuy nhiên, CVDate trả về Variant kiểu con có thay Date vì kiểu thực Date tế. Vì Access giờ đây bao gồm một kiểu nội tại Date nên bạn không còn cần đến .CVDate Bạn có thể có cùng hiệu ứng bằng cách chuyển đổi biểu thức thành Date một, rồi gán cho một Variant. Kỹ thuật này phù hợp với việc chuyển đổi các loại nội tại khác thành các phân nhóm tương Variant đương của chúng.

Lưu ý

Hàm CDec không trả về kiểu dữ liệu kín. Thay vào đó, nó luôn trả về Variant giá trị có đã đượ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ả SalePrice về và FinalPrice, và đánh giá xem có SalePrice lớn hơn FinalPrice. Trả -1 về nếu là true và 0 if it's false.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Trả ProductIDvề , chuyển đổi các 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ả ProductIDvề , chuyển đổi các 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ả ProductIDvề , chuyển đổi các 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ả ProductIDvề , chuyển đổi các 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ả ProductIDvề , chuyển đổi các 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ả ProductIDvề , chuyển đổi các 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ả ProductIDvề , chuyển đổi các 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ả ProductIDvề , chuyển đổi các giá Discount trị số Doublethành và chuyển đổi các giá trị không phải dạng số thành String.

Ví dụ về VBA

Lưu ý

Các ví dụ sau đây cho thấ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 mục 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 thành một Boolean. Nếu biểu thức định trị một giá trị khác không, trả về ; CBool nếu Truekhô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 CByte hàm để chuyển đổi một biểu thức thành một 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 CCur hàm để chuyển đổi một biểu thức thành một 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. Nói chung, không khuyến khích ngày và giờ mã hóa cứng dưới dạng chuỗi, như minh họa trong ví dụ này. Sử dụng ký tự ngày và ký tự thời gian, chẳng hạn như #2/12/1969##4:45:23 PM#, thay vào đó.

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 thành một 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 giá trị số thành 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ị thành 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ị thành 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.

Hàm CSng

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

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

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