แต่ละฟังก์ชันจะแปลงนิพจน์ให้เป็นชนิดข้อมูลที่เฉพาะเจาะจง
ไวยากรณ์
CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)
อาร์กิวเมนต์ที่จําเป็นต้องมี expression คือนิพจน์สตริงหรือตัวเลขใดก็ได้
ชนิดการส่งคืน
ชื่อฟังก์ชันจะกําหนดชนิดการส่งกลับ ดังที่แสดงในตารางต่อไปนี้
| ฟังก์ชัน | ชนิดการส่งคืน | ช่วงสําหรับอาร์ expression กิวเมนต์ |
|---|---|---|
CBool |
Boolean |
นิพจน์สตริงหรือตัวเลขที่ถูกต้องใดก็ได้ |
CByte |
Byte |
0 ให้กับ 255. |
CCur |
Currency |
-922,337,203,685,477.5808 ให้กับ 922,337,203,685,477.5807. |
CDate |
Date |
นิพจน์วันที่ที่ถูกต้องใดก็ได้ |
CDbl |
Double |
-1.79769313486231E308 to -4.94065645841247E-324 สําหรับค่าลบ และ 4.94065645841247E-324 to 1.79769313486232E308 สําหรับค่าบวก |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 สําหรับตัวเลขที่มีมาตราส่วนเป็นศูนย์ หรือตัวเลขที่ไม่มีตําแหน่งทศนิยม สําหรับตัวเลขที่มีตําแหน่ง 28 ทศนิยม ช่วงเป็น +/-7.9228162514264337593543950335. จํานวนที่ไม่ใช่ศูนย์ที่น้อยที่สุดที่เป็นไปได้คือ0.0000000000000000000000000001 |
CInt |
Integer |
-32,768 เป็น เศษ 32,767ส่วนจะถูกปัดเศษ |
CLng |
Long |
-2,147,483,648 เป็น เศษ 2,147,483,647ส่วนจะถูกปัดเศษ |
CSng |
Single |
-3.402823E38 to -1.401298E-45 สําหรับค่าลบ และ 1.401298E-45 to 3.402823E38 สําหรับค่าบวก |
CStr |
String |
ค่าที่ส่งกลับจะขึ้นอยู่กับ expression อาร์กิวเมนต์ |
CVar |
Variant |
ช่วง Double เดียวกับค่าตัวเลข ช่วง String เดียวกับค่าที่ไม่ใช่ตัวเลข |
ข้อสังเกต
ถ้าข้อมูลที่ expression ส่งผ่านไปยังฟังก์ชันอยู่นอกช่วงของชนิดข้อมูลที่คุณกําลังแปลงไป ข้อผิดพลาดจะเกิดขึ้น
โดยทั่วไป คุณสามารถทําเอกสารโค้ดของคุณโดยใช้ฟังก์ชันการแปลงชนิดข้อมูลเพื่อแสดงว่าผลลัพธ์ของการดําเนินการควรใช้ชนิดข้อมูลเฉพาะแทนชนิดเริ่มต้น ตัวอย่างเช่น ใช้เพื่อ CCur บังคับการคํานวณค่าสกุลเงินในกรณีที่โดยปกติจะเกิดขึ้นแบบความแม่นยําเดี่ยว ความแม่นยําสองเท่า หรือเลขคณิตจํานวนเต็ม
ใช้ฟังก์ชันการแปลงชนิดข้อมูลแทนการแปลง Val ตําแหน่งกระทําการจากชนิดข้อมูลหนึ่งเป็นอีกชนิดหนึ่ง ตัวอย่างเช่น เมื่อคุณใช้ CCurAccess รู้จักตัวคั่นทศนิยม ตัวคั่นหลักพัน และตัวเลือกสกุลเงินต่างๆ ตามการตั้งค่าตําแหน่งกระทําการของคอมพิวเตอร์ของคุณ
เมื่อส่วนที่เป็นเศษส่วนเท่ากับ 0.5และ CIntCLng ปัดเศษเป็นเลขคู่ที่ใกล้เคียงที่สุดเสมอ ตัวอย่างเช่น ปัด 0.5 เศษเป็น 0, และ 1.5 ปัดเศษเป็น 2.
CInt และ CLng แตกต่างจากฟังก์ชัน AND FixInt ที่ตัดเศษส่วนของตัวเลขแทนที่จะปัดเศษ
Fix และยัง Int ส่งกลับค่าที่เป็นชนิดเดียวกับที่คุณส่งเข้ามาเสมอ
ใช้ฟังก์ชันนี้ IsDate เพื่อกําหนดว่า date สามารถแปลงเป็นวันที่หรือเวลาได้หรือไม่
CDate รู้จักตัวอักษรวันที่และตัวอักษรเวลา รวมทั้งตัวเลขบางตัวที่อยู่ในช่วงของวันที่ที่ยอมรับได้ เมื่อคุณแปลงตัวเลขเป็นวันที่ ส่วนที่เป็นตัวเลขทั้งหมดจะกลายเป็นวันที่ เศษส่วนใดๆ จะเป็นเวลาของวันที่เริ่มต้นตอนเที่ยงคืน
CDate รู้จักรูปแบบวันที่ตามการตั้งค่าตําแหน่งของระบบ Access อาจไม่สามารถกําหนดลําดับวัน เดือน และปีที่ถูกต้องได้ ถ้าคุณใช้รูปแบบอื่นนอกเหนือจากการตั้งค่าวันที่ที่รู้จัก นอกจากนี้ โปรแกรมจะไม่รู้จักรูปแบบวันที่แบบยาวถ้ามีสตริงวันในสัปดาห์ด้วย
ฟังก์ชันนี้ CVDate ยังพร้อมใช้งานสําหรับความเข้ากันได้กับ Visual Basic เวอร์ชันก่อนหน้า ไวยากรณ์ของเหมือนกับCVDateCDateฟังก์ชัน อย่างไรก็ตาม ส่งCVDateกลับ a ที่มีVariantชนิดย่อยแทนที่จะDateเป็นชนิดจริงDate เนื่องจาก Access มีชนิดที่มีอยู่แล้ว Date คุณจึงไม่จําเป็นต้องใช้ CVDateอีกต่อไป คุณจะได้รับเอฟเฟ็กต์แบบเดียวกันโดยการแปลงนิพจน์ให้เป็น a แล้ว Date กําหนดให้ Variant. เทคนิคนี้สอดคล้องกับการแปลงชนิดที่แท้จริงอื่นๆ เป็นชนิดย่อยที่เทียบเท่ากันVariant
หมายเหตุ
CDecฟังก์ชันไม่ส่งกลับชนิดข้อมูลที่ไม่ต่อเนื่อง แต่จะส่งกลับ a Variant ที่มีค่าถูกแปลงเป็น Decimal ชนิดย่อยเสมอ
ตัวอย่างคิวรี
| Expression | ผลลัพธ์ |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
ส่งกลับค่า SalePrice และ FinalPriceและประเมินว่า SalePrice มากกว่า FinalPriceหรือไม่ ส่งกลับค่าถ้า -1 เป็นจริงและถ้า 0 เป็นเท็จ |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
ส่งกลับค่า ProductIDแปลงค่าในเขตข้อมูลเป็น QuantityByteและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
ส่งกลับค่า ProductIDแปลงค่าในเขตข้อมูลเป็น DateofSaleDateและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
ส่งกลับค่า ProductIDแปลงค่าในเขตข้อมูลเป็น DiscountDoubleและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
ส่งกลับค่า ProductIDแปลงค่าในเขตข้อมูลเป็น DiscountIntegerและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
ส่งกลับค่า ProductIDแปลงค่าในเขตข้อมูลเป็น DiscountLongและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
ส่งกลับค่า ProductIDแปลงค่าในเขตข้อมูลเป็น DiscountSingleและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
ส่งกลับค่า ProductIDแปลงค่าในเขตข้อมูลเป็น DiscountStringและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
ส่งกลับค่า ProductIDแปลงค่าตัวเลขDiscountเป็น Doubleและแปลงค่าที่ไม่ใช่ตัวเลขเป็นString |
ตัวอย่าง VBA
หมายเหตุ
ตัวอย่างต่อไปนี้แสดงวิธีการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทํางานกับ VBA ให้ดูที่ การอ้างอิง VBA ของ Access
ฟังก์ชัน CBool
ตัวอย่างนี้ใช้ฟังก์ชันในCBoolการแปลงนิพจน์ให้เป็น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การแปลงนิพจน์ให้เป็นByte
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
ฟังก์ชัน CCur
ตัวอย่างนี้ใช้ฟังก์ชันในCCurการแปลงนิพจน์ให้เป็น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).
ฟังก์ชัน CDate
ตัวอย่างนี้ใช้ฟังก์ชันในCDateการแปลงสตริงเป็นDate โดยทั่วไปแล้ว ไม่แนะนําให้ใช้การกําหนดวันที่และเวลาตายตัวเป็นสตริงดังที่แสดงในตัวอย่างนี้ ใช้สัญพจน์วันที่และสัญพจน์เวลา เช่น #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 การแปลงค่าตัวเลขเป็น Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
ฟังก์ชัน CInt
ตัวอย่างนี้ใช้ฟังก์ชันใน CInt การแปลงค่าเป็น Integer.
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.