ทศนิยม 2 ตำแหน่ง
กระทู้เก่าบอร์ด อ.Yeadram

 6,878   5
URL.หัวข้อ / URL
ทศนิยม 2 ตำแหน่ง

price                      newprice
492.5          492.50
5492.50          5492.50
1                      1.00
130                  130.00
459.8          459.80
459                  459.00
50.50             50.50
5.40                  5.40.00
285                  285.00
285                  285.00
120                  120.00
120                  120.00
199.5          199.50
199.5           199.50
3.0                      3.00
319                  319.00
407.5           407.50

เรียนอาจารย์ทุกท่านครับ   ผมมีข้อมูล ทางคอลัมภ์ซ้ายมือ Forrmat เป็น Text
ซึ่งมีจุดทศนิยม 1 ตำแหน่งบ้าง 2 ตำแหน่งบ้าง และบางตำแหน่งไม่มีจุดทศนิยม
ต้องการให้ได้ข้อมูลออกมา เหมือนทางคอลัมภ์ ขวามือ ด้วยวิธีการ Update ให้เป็นทศนิยม 2 ตำแหน่ง ทุก Record ไม่มีจุลภาคขั้น (Format ยังคงเป็น Text เหมือนเดิม)

เงื่อนไขคือ
1 .ถ้ามีทศนิยม 1 ตำแหน่ง ให้เติม 0 (ศูนย์) ต่อท้าย เพื่อให้ครบสองตำแหน่ง
2. ถ้าไม่มีทศนิยม ให้เติม .00   (จุดศูนย์ศูนย์)    ต่อท้าย เพื่อให้ครบสองตำแหน่ง
3. ถ้ามีทศนิยม 2 ตำแหน่งอยู่แล้ว ไม่ต้องแก้ไขอะไรให้ข้อมูลคงเดิม

ผมทดลองใช้ ใน Query แต่ได้ไม่ครบทุก Record
Expr : Trim([Price]) & IIf(Len([price])-InStrRev([price],'.')=1 And Len([Price])<>1 And Len([Price])-InStrRev([price],'.')=2,'0','.00')

อยากได้เป็น Module, Function, หรือ Commandline หรือ Vb น่าจะครอบคลุมกว่าใช้ Query

พยายามเปิดดู การใช้ For next   Do untile ก้ไม่ค่อยเข้าใจนัก (แทนค่าไม่ถูกครับ)

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R13445
Expr : format(cdec([price]),"0.00")
2 @R13448
ทดลองแล้วครับ ปรับแก้ ให้ Query ยอมรับใน Access เป็น Expr: Format(CDec([price],"0.00")) ผลที่ได้ออกมา   เป็น   0   (ศูนย์) ตัวเดียว ทุก Record เลยครับ อีก Format ที่ผมไปค้นหามา   Expr :Format(CInt([price]),'0.00') อันนี้ได้ ทศนิยมสองตำแหน่ง แต่ค่าที่ได้ เป็น .00 (จุดศูนย์ศูนย์) อย่างเดียวเลยครับ   ไม่ทราบว่าเกิดจากสาเหตุใดครับ ผมลองค้นหาใน Help ของ Ms.Access ไม่พบเลยครับ
3 @R13450
ในคิวรี่ NewPrice : cdbl([Price])

แล้วไม่ต้องสนว่าในคิวรี่มันจะแสดงผลยังไง
ไปดูที่ฟอร์มหรือ รายงานเลยครับ ปรับแต่งการแสดงผลที่ textbox นู่นเลย
4 @R13451
ถ้าต้องการ update ในตารางโดยตรงใช้ query

Update [PriceTable]
Set [Price] = Format(CDbl([Price]),"0.00")

อย่าลืม backup ก่อนนะครับ
5 @R13452
ขอบคุณอาจารย์ทั้ง สามท่านเลยครับ   

CDec   กับ    CDbl       ในกรณีของผม    ใช้      CDbl   ได้ผลครับ.....
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2637s