แต่ละฟังก์ชันบังคับให้ นิพจน์ กับ ชนิดข้อมูล ที่ระบุ
ไวยากรณ์
CBool( expression )
CByte( expression )
CCur( expression )
CDate( expression )
CDbl( expression )
CDec( expression )
CInt( expression )
CLng( expression )
CSng( expression )
CStr( expression )
CVar( expression )
อาร์กิวเมนต์ นิพจน์ ที่จําเป็นคือ นิพจน์สตริง หรือ นิพจน์ตัวเลข
ชนิดการส่งคืน
ชื่อฟังก์ชันจะกําหนดชนิดการส่งกลับตามที่แสดงดังต่อไปนี้:
ฟังก์ชัน |
ชนิดการส่งคืน |
ช่วงสําหรับ อาร์กิวเมนต์ ของนิพจน์ |
---|---|---|
CBool |
บูลีน |
นิพจน์สตริงหรือตัวเลขที่ถูกต้องใดก็ได้ |
CByte |
ไบต์ |
0 ถึง 255 |
CCur |
สกุลเงิน |
-922,337,203,685,477.5808 ถึง 922,337,203,685,477.5807 |
CDate |
วันที่ |
นิพจน์วันที่ที่ถูกต้องใดก็ได้ |
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.000000000000000000000000000000001 |
CInt |
จำนวนเต็ม |
-32,768 ถึง 32,767 เศษส่วนจะถูกปัดเศษ |
CLng |
ยาว |
-2,147,483,648 ถึง 2,147,483,647 เศษส่วนจะถูกปัดเศษ |
CSng |
Single |
-3.402823E38 ถึง -1.401298E-45 สําหรับค่าลบ 1.401298E-45 ถึง 3.402823E38 สําหรับค่าบวก |
CStr |
สตริง |
ส่งกลับค่าสําหรับ CStr ขึ้นอยู่กับอาร์กิวเมนต์ของนิพจน์ |
CVar |
ตัว แปร |
ช่วงเดียวกันกับ สองชั้น สําหรับตัวเลข ช่วงเดียวกันกับ สตริง สําหรับข้อมูลที่ไม่ใช่ตัวเลข |
ข้อสังเกต
ถ้า นิพจน์ ที่ส่งผ่านไปยังฟังก์ชันอยู่นอกช่วงของชนิดข้อมูลที่จะถูกแปลง จะเกิดข้อผิดพลาดขึ้น
โดยทั่วไปแล้ว คุณสามารถจัดทําเอกสารโค้ดของคุณโดยใช้ฟังก์ชันการแปลงชนิดข้อมูลเพื่อแสดงว่าผลลัพธ์ของการดําเนินการบางอย่างควรแสดงเป็นชนิดข้อมูลเฉพาะแทนที่จะเป็นชนิดข้อมูลเริ่มต้น ตัวอย่างเช่น ใช้ CCur เพื่อบังคับให้ใส่เลขคณิตของสกุลเงินในกรณีที่มีความแม่นยําเดียว ความแม่นยําสองเท่า หรือจํานวนเต็มตามปกติ
คุณควรใช้ฟังก์ชันการแปลงชนิดข้อมูลแทน Val เพื่อให้การแปลงที่ทราบในระดับสากลจากชนิดข้อมูลหนึ่งไปเป็นอีกชนิดข้อมูลหนึ่ง ตัวอย่างเช่น เมื่อคุณใช้ CCur ตัวคั่นทศนิยมที่แตกต่างกัน ตัวคั่นหลักพันที่แตกต่างกัน และตัวเลือกสกุลเงินต่างๆ จะรู้จักอย่างเหมาะสม โดยขึ้นอยู่กับการตั้งค่าตําแหน่งที่ตั้งของคอมพิวเตอร์ของคุณ
เมื่อส่วนที่เป็นเศษส่วนเท่ากับ 0.5 แล้ว CInt และ CLng จะปัดเศษเป็นเลขคู่ที่ใกล้ที่สุดเสมอ ตัวอย่างเช่น 0.5 ปัดเศษเป็น 0 และ 1.5 จะปัดเศษเป็น 2 CInt และ CLng แตกต่างจากฟังก์ชัน Fix และ Int ซึ่งตัดทอนแทนที่จะปัดเศษส่วนที่เป็นเศษส่วนของตัวเลข นอกจากนี้ แก้ไข และ Int จะส่งกลับค่าชนิดเดียวกันกับส่งผ่านเสมอ
ใช้ฟังก์ชัน IsDate เพื่อกําหนดว่า วันที่ สามารถแปลงเป็นวันที่หรือเวลาได้หรือไม่ CDate จะจดจําสัญพจน์วันที่และตัวอักษรของเวลา รวมถึงตัวเลขบางตัวที่อยู่ในช่วงของวันที่ที่ยอมรับได้ เมื่อแปลงตัวเลขเป็นวันที่ ส่วนจํานวนเต็มจะถูกแปลงเป็นวันที่ ส่วนที่เป็นเศษส่วนของตัวเลขจะถูกแปลงเป็นเวลาของวัน โดยเริ่มต้นที่เที่ยงคืน
CDate จะจดจํารูปแบบวันที่ตามการตั้งค่า ตำแหน่งกระทำการ ของระบบของคุณ อาจไม่สามารถกําหนดลําดับของวัน เดือน และปีที่ถูกต้องได้ ถ้ามีการเรียงลําดับในรูปแบบอื่นนอกเหนือจากการตั้งค่าวันที่ที่รู้จัก นอกจากนี้ ระบบไม่รู้จักรูปแบบวันที่แบบยาวถ้ามีสตริงวันในสัปดาห์ด้วย
นอกจากนี้ยังมีฟังก์ชัน CVDate เพื่อความเข้ากันได้กับ Visual Basic รุ่นก่อนหน้า ไวยากรณ์ของฟังก์ชัน CVDate จะเหมือนกับฟังก์ชัน CDate อย่างไรก็ตาม CVDate จะส่งกลับ ตัวแปร ซึ่งมีชนิดย่อยเป็น วันที่ แทนชนิด วันที่ จริง เนื่องจากมีชนิด วันที่ ภายในจึงไม่จําเป็นต้องใช้ CVDate อีกต่อไป เอฟเฟ็กต์เดียวกันสามารถทําได้โดยการแปลงนิพจน์เป็นวันที่ แล้วกําหนดให้เป็น ตัวแปร เทคนิคนี้สอดคล้องกับการแปลงชนิดภายในอื่นๆ ทั้งหมดเป็นชนิดย่อย Variant ที่เทียบเท่ากัน
หมายเหตุ: ฟังก์ชัน CDec ไม่ส่งกลับชนิดข้อมูลแบบแยก แต่ส่งกลับค่าชนิดข้อมูลที่แยกจากกัน แต่จะส่งกลับ ตัวแปร ที่มีการแปลงค่าเป็นชนิดย่อย ทศนิยม เสมอ
ตัวอย่างคิวรี
Expression |
ผลลัพธ์ |
---|---|
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
ส่งกลับ "SalePrice", "FinalPrice" และประเมินว่า SalePrice มากกว่าราคาสุดท้ายหรือไม่ ส่งกลับ "-1" ถ้าเป็น true และ "0" ถ้าเป็น false |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
ส่งกลับ "ProductID",แปลงค่าในเขตข้อมูล "ปริมาณ" เป็นรูปแบบไบต์ และแสดงในคอลัมน์ Expr1 ส่งกลับ "ProductID" แปลงค่าในเขตข้อมูล "ปริมาณ" เป็นรูปแบบสกุลเงินและแสดงในคอลัมน์ Expr1 |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
ส่งกลับ "ProductID" แปลงค่าในเขตข้อมูล "DateofSale" เป็นรูปแบบวันที่และแสดงในคอลัมน์ Expr1 |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
ส่งกลับ "ProductID" แปลงค่าในเขตข้อมูล "Discount" เป็นรูปแบบ Double และแสดงในคอลัมน์ Expr1 |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
ส่งกลับ "ProductID" แปลงค่าในเขตข้อมูล "Discount" เป็นรูปแบบจํานวนเต็มและแสดงในคอลัมน์ Expr1 |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
ส่งกลับ "ProductID" แปลงค่าในเขตข้อมูล "Discount" เป็นรูปแบบ Long และแสดงในคอลัมน์ Expr1 |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
ส่งกลับ "ProductID" แปลงค่าในเขตข้อมูล "Discount" เป็นรูปแบบเดียวและแสดงในคอลัมน์ Expr1 |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
ส่งกลับ "ProductID" แปลงค่าในเขตข้อมูล "Discount" เป็นรูปแบบสตริงและแสดงในคอลัมน์ Expr1 |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
ส่งกลับ "ProductID" แปลงค่าในเขตข้อมูล "Discount" เป็น Double สําหรับค่าตัวเลขและสตริงสําหรับค่าที่ไม่ใช่ตัวเลข |
ตัวอย่าง VBA
หมายเหตุ: ตัวอย่างต่อไปนี้จะสาธิตการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทํางานกับ VBA ให้ดูที่ การอ้างอิง VBA ของ Access
ฟังก์ชัน CBool
ตัวอย่างนี้ใช้ฟังก์ชัน CBool เพื่อแปลงนิพจน์เป็นบูลีน ถ้านิพจน์ประเมินเป็นค่าที่ไม่ใช่ศูนย์ CBool จะส่งกลับเป็น True แต่ถ้านิพจน์มีค่าที่ไม่ใช่ศูนย์ มิฉะนั้นจะส่งกลับเป็นเท็จ
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 เพื่อแปลงนิพจน์เป็นไบต์
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
ฟังก์ชัน CCur
ตัวอย่างนี้ใช้ฟังก์ชัน CCur เพื่อแปลงนิพจน์เป็นสกุลเงิน
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 เพื่อแปลงสตริงเป็นวันที่ โดยทั่วไปแล้ว ไม่แนะนําให้กําหนดรหัสวันที่และเวลาเป็นสตริง (ดังที่แสดงในตัวอย่างนี้) ใช้สัญพจน์วันที่และสัญพจน์เวลา เช่น #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 เพื่อแปลงค่าตัวเลขเป็นทศนิยม
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
ฟังก์ชัน CInt
ตัวอย่างนี้ใช้ฟังก์ชัน CInt เพื่อแปลงค่าเป็นจํานวนเต็ม
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 เพื่อแปลงค่าตัวเลขเป็นสตริง
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
ฟังก์ชัน CVar
ตัวอย่างนี้ใช้ฟังก์ชัน CVar เพื่อแปลงนิพจน์เป็น ตัวแปร
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.