ฟังก์ชัน Type Conversion

นำไปใช้กับ
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

แต่ละฟังก์ชันจะแปลงนิพจน์เป็นชนิดข้อมูลที่เฉพาะเจาะจง

ไวยากรณ์

  • 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.