แต่ละฟังก์ชันจะแปลงนิพจน์เป็นชนิดข้อมูลที่เฉพาะเจาะจง
ไวยากรณ์
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 ถึง -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 |
Integer |
-32,768 ถึง 32,767; เศษส่วนจะถูกปัดเศษ |
CLng |
Long |
-2,147,483,648 ถึง 2,147,483,647; เศษส่วนจะถูกปัดเศษ |
CSng |
Single |
-3.402823E38 ถึง -1.401298E-45 สําหรับค่า 1.401298E-45 ลบ ไปจนถึง 3.402823E38 สําหรับค่าบวก |
CStr |
String |
ค่าที่ส่งกลับจะขึ้นอยู่กับ expression อาร์กิวเมนต์ |
CVar |
Variant |
ช่วงเดียวกันกับ Double ค่าตัวเลข ช่วงเดียวกันกับ String ค่าที่ไม่ใช่ตัวเลข |
ข้อสังเกต
ถ้าฟังก์ชัน expression ที่ส่งผ่านไปยังฟังก์ชันอยู่นอกช่วงของชนิดข้อมูลที่คุณกําลังแปลงจะมีข้อผิดพลาดเกิดขึ้น
โดยทั่วไป แล้ว คุณสามารถจัดทําเอกสารโค้ดของคุณโดยใช้ฟังก์ชันการแปลงชนิดข้อมูลเพื่อแสดงว่าผลลัพธ์ของการดําเนินการควรใช้ชนิดข้อมูลเฉพาะแทนชนิดเริ่มต้น ตัวอย่างเช่น ใช้ CCur เพื่อบังคับให้มีเลขคณิตของสกุลเงินในกรณีที่ปกติแล้วจะเกิดเลขคณิตที่มีความแม่นยําระดับเดียว ความแม่นยําสองเท่า หรือจํานวนเต็ม
ใช้ฟังก์ชันการแปลงชนิดข้อมูลแทน Val การแปลงที่ทราบตําแหน่งที่ตั้งจากชนิดข้อมูลหนึ่งไปเป็นอีกชนิดหนึ่ง ตัวอย่างเช่น เมื่อคุณใช้ CCurAccess จะรู้จักตัวคั่นทศนิยม ตัวคั่นหลักพัน และตัวเลือกสกุลเงินที่ต่างกันตามการตั้งค่าตําแหน่งที่ตั้งของคอมพิวเตอร์ของคุณ
เมื่อส่วนที่เป็นเศษส่วนตรง0.5CIntและCLngปัดเศษเป็นเลขคู่ที่ใกล้ที่สุดเสมอ ตัวอย่างเช่น 0.5 ปัดเศษเป็น 0และ1.5ปัดเศษเป็น2
CInt และ CLng แตกต่างจาก Fix ฟังก์ชัน and Int ซึ่งจะตัดเศษส่วนของตัวเลขออกแทนการปัดเศษ
Fix และ Int ส่งกลับค่าชนิดเดียวกันกับที่คุณส่งเข้ามาเสมอ
IsDateใช้ฟังก์ชันเพื่อกําหนดว่าdateสามารถแปลงเป็นวันที่หรือเวลาได้หรือไม่
CDate จดจําสัญพจน์วันที่และสัญพจน์เวลา รวมถึงตัวเลขบางตัวที่อยู่ในช่วงของวันที่ที่ยอมรับได้ เมื่อคุณแปลงตัวเลขเป็นวันที่ ส่วนจํานวนเต็มจะกลายเป็นวันที่ ส่วนที่เป็นเศษส่วนจะกลายเป็นช่วงเวลาของวันที่เริ่มต้นในเที่ยงคืน
CDate ระบุรูปแบบวันที่ตามการตั้งค่าตําแหน่งที่ตั้งของระบบของคุณ Access อาจกําหนดลําดับของวัน เดือน และปีไม่ถูกต้อง ถ้าคุณระบุรูปแบบอื่นนอกเหนือจากการตั้งค่าวันที่ที่รู้จัก นอกจากนี้ ยังไม่รู้จักรูปแบบวันที่แบบยาว ถ้ามีสตริงวันในสัปดาห์ด้วย
ฟังก์ชัน CVDate นี้ยังใช้งานได้กับ Visual Basic เวอร์ชันก่อนหน้า ไวยากรณ์ของ CVDate จะเหมือนกับ CDate ฟังก์ชัน อย่างไรก็ตาม CVDate จะส่งกลับค่าที่มีVariantชนิดย่อยแทนที่จะเป็นDateชนิดจริงDate เนื่องจาก Access มีชนิดภายใน Date คุณจึงไม่จําเป็นต้องใช้ CVDateอีกต่อไป คุณสามารถรับเอฟเฟ็กต์เดียวกันได้โดยการแปลงนิพจน์เป็น Date แล้วกําหนดให้เป็นVariant เทคนิคนี้สอดคล้องกับการแปลงชนิดภายในอื่นๆ ให้เป็นชนิดย่อยที่เทียบเท่า Variant กัน
หมายเหตุ
ฟังก์ชัน CDec ไม่ส่งกลับชนิดข้อมูลแบบแยก แต่จะส่งกลับค่า Variant ที่แปลงเป็น Decimal ชนิดย่อยเสมอ
ตัวอย่างคิวรี
| Expression | ผลลัพธ์ |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
ส่งกลับ SalePrice และ FinalPriceและ ประเมินว่ามีค่ามากกว่า FinalPriceหรือไม่SalePrice ส่งกลับ -1 ถ้าเป็นจริง และ 0 ถ้าเป็นเท็จ |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
ส่งกลับ ProductIDแปลงค่าใน Quantity เขตข้อมูลเป็น Byteและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
ส่งกลับ ProductIDแปลงค่าใน DateofSale เขตข้อมูลเป็น Dateและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
ส่งกลับ ProductIDแปลงค่าใน Discount เขตข้อมูลเป็น Doubleและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
ส่งกลับ ProductIDแปลงค่าใน Discount เขตข้อมูลเป็น Integerและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
ส่งกลับ ProductIDแปลงค่าใน Discount เขตข้อมูลเป็น Longและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
ส่งกลับ ProductIDแปลงค่าใน Discount เขตข้อมูลเป็น Singleและแสดงค่าเหล่านั้นใน Expr1 คอลัมน์ |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
ส่งกลับ ProductIDแปลงค่าใน Discount เขตข้อมูลเป็น Stringและแสดงค่าเหล่านั้นใน 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.