Val กับ Cdbl ใช้ยังงัยครับ



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

19 เม.ย. 61 , 16:15:38
อ่าน 943 ครั้ง

Krathok-man

  • สมาชิกไท.Access
  • กระทู้: 15

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

Val กับ Cdbl ใช้ยังงัยครับ
« เมื่อ: 19 เม.ย. 61 , 16:15:38 »
Val  กับ  Cdbl  ใช้ยังงัยครับ

 

19 เม.ย. 61 , 16:43:54
ตอบกลับ #1

ปิ่นณรงค์

> Val กับ Cdbl ใช้ยังงัยครับ
« ตอบกลับ #1 เมื่อ: 19 เม.ย. 61 , 16:43:54 »
Val  กับ  Cdbl  ใช้ยังงัยครับ

ใช้ในกรณีที่ต้องการเปลี่ยนค่าของ นิพจน์ แปลเป็นค่าที่เฉพาะเจาะจง
Cdbl คือการเปลี่ยน นิพจน์ให้เป็น Double ครับ
ยกตัวอย่าง ผมกำหนด Integet กับ Double เพื่อให้เห็นความแตกต่าง
Dim MyDouble, MyInt
MyDouble = 2345.5678    ' MyDouble แสดงค่าเป็น  Double.
MyInt = CInt(MyDouble)    ' MyInt แสดงค่าเป็น 2346. คือ Integer

ตัวอย่าง Val กำหนดตัวแปร
Dim MyInt, MyVar
MyInt = 1554    ' MyInt คือค่าจำนวนเต็มตัวเลข หรือว่า Integer.
MyVar = CVar(MyInt & "0000")   จะเห็นได้ว่าเราแทนค่าตัวแปร Var = 0000 ออกมา
MyVar จะแสดงผลออกมาดังนี้ 15540000.
ในกรณีที่จะ ใช้ในการคำนวนยกตัวอย่างเชื่อ
มีชื่อมูลตัวเลข ที่เราเก็บไว้ใน Record เป็น Sting
ชื่อ text 1 = 1.5 และ text 2 = 6.1 ผลการรวทที่ได้ กรณี text1+text2 คือ 1.56.1
ซึ่งเมื่อเราต้องการคำนวน แล้วให้แสดงค่าเป็น  Double ต้องกำหนดดังนี้
(CDbl(text1)) + (CDbl(text1)) ผลที่ได้คือ 7.7 นั้นเอง

ยังมีการเปลี่ยนค่าของ นิพจน์ แปลเป็นค่าที่เฉพาะเจาะจง
ซึ่งยังมี อีกหลายรูปแบบด้วยกันดังนี้

CBool  Boolean   สตริงที่ที่ถูกต้องหรือนิพจน์ใด ๆ

CByte  ไบต์  0 ถึง 255

CCur สกุลเงิน -922,337,203,685,477.5808 เพื่อ 922,337,203,685,477.5807

CDate  วันที่  นิพจน์วันที่ที่ถูกต้องใด ๆ

CDbl  Double

CDec  เลขฐานสิบ
+/ 79,228,162,514,264,337,593,543,950,335 สำหรับศูนย์ปรับขนาดตัวเลข นั่นคือ ตัวเลข โดยไม่มีจุดทศนิยม สำหรับตัวเลขที่มีตำแหน่งทศนิยม 28 คือช่วง
+/ 7.9228162514264337593543950335 หมายเลขที่ไม่ใช่ศูนย์เป็นไปได้น้อยที่สุดคือ 0.0000000000000000000000000001

CInt  จำนวนเต็ม  -32768 ถึง 32767 แทนเศษส่วนจะถูกปัดเศษ

CLng ความยาว   -2147483648 เพื่อ 2147483647 แทนเศษส่วนจะถูกปัดเศษ

CSng  เดี่ยว  -3.402823 e 38 ถึง - 1.401298 e-45 สำหรับค่าลบ 1.401298 e-45 ถึง 3.402823 e 38 สำหรับค่าบวก

CStr สตริง ส่งกลับค่าสำหรับ CStr ขึ้นอยู่กับอาร์กิวเมนต์นิพจน์

CVar ตัวแปร ช่วงเดียวกันเป็นคู่สำหรับ numerics ช่วงเดียวกันเป็นสตริงที่สำหรับ numerics ไม่ใช่
« แก้ไขครั้งสุดท้าย: 19 เม.ย. 61 , 16:53:48 โดย Newbies »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Su, Krathok-man

19 เม.ย. 61 , 20:10:50
ตอบกลับ #2

pizza_p

> Val กับ Cdbl ใช้ยังงัยครับ
« ตอบกลับ #2 เมื่อ: 19 เม.ย. 61 , 20:10:50 »
Val รับตัวอักษร string ได้หมด ถ้าไม่สามารถแปลงเป็นตัวเลขได้จะให้ค่าเป็น 0 และ Val จะแปลง string เป็นตัวเลขจนเจอตัวที่ไม่สามารถแปลงได้ เช่น Val(" 123 ab") จะได้ 123

แต่ CDbl ถ้ามี string ตัวที่แปลงเป็นตัวเลขไม่ได้จะเกิด error

Val รับได้แค่จุดทศนิยม . แต่จะไม่รับคอมม่า , ในขณะที่ CDbl รับได้ทั้งจุดทศนิยม และคอมม่า

 
โพสต์นี้ได้รับคำขอบคุณจาก: Su


บอร์ดเรียนรู้ Access สำหรับคนไทย