ขอความช่วยเหลือหน่อยครับ ต้องการแปลงเกี่ยวกับตัวเลขครับ..
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 366   15
URL.หัวข้อ / URL
ขอความช่วยเหลือหน่อยครับ ต้องการแปลงเกี่ยวกับตัวเลขครับ..

-คือตอนนี้ ผมได้ทำช่อง รวมส่วนลด น่ะครับ และมีการตัด%ด้วย แต่ว่าในกรณีที่ไม่มีส่วยลด มันจะแสดงตัวเลขติดลบน่ะครับ จะทำอย่างไรให้ช่องที่ขึ้นตัวเลขติดลบ กลายเป็น 0.00 แทนครับ ประมาณว่า ถ้าน้อยกว่า 0 ให้ แสดงตัวเลข 0.00 เลยน่ะครับ ขอบคุณครับ

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

1 @R05697
ลองใส่ที่ รูปแบบ หรือ Format แบบนี้ดูครับ..

#,##0.00[Black];0.00[Red];0.00[Blue];"-"

ความหมาย..
#,##0.00[Black] = ถ้าค่าเป็นค่า + ให้แสดงข้อมูลตามรูปแบบนี้และมีสีดำ เช่น 1,200.00
0.00[Red] = ถ้าค่าเป็นค่า - ให้แสดงข้อมูลตามรูปแบบนี้และมีสีแดง เช่น 0.00
0.00[Blue] = ถ้าค่าเป็นค่า 0 ให้แสดงข้อมูลตามรูปแบบนี้และมีสีน้ำเงิน เช่น 0.00
"-" = ถ้าค่าเป็น Null ให้แสดงข้อมูลตามรูปแบบนี้
2 @R05701
ขอบคุณมากครับ คุณBADMan แล้วผมจะลองเอาไปทำดูนะครับ ขอบคุณมากครับ
3 @R05774
ขอถามอีกครั้งครับ คือได้ทำตามที่ ท่านBadMan บอกแล้ว แต่ยังไม่ขึ้นเลยครับ รบกวนขอเป็นโค๊ดเต็มๆเลยครับ ทั้งบิล และ หน้าฟอร์มยังคงขึ้นติดลบอยู่เหมือนเดิมครับ
4 @R05777
ไม่มี code อะไรเลยครับ เพียงแต่คุณใส่...
#, ##0.00[Black];0.00[Red];0.00[Blue];"-"

ลงไปที่ Format ของ Control ตัวที่แสดงค่าติดลบ ก็น่าจะเห็นผลแล้วครับ
5 @R05843
รบกวนอีกครั้งครับ ใครก็ได้รบกวน ช่วยอธิบายอีกทีครับ คือถ้าใน TextBox51 เป็นผลลัพธ์ที่รวม ของ =[Text49]-[Text24] น่ะครับบางที่มีค่าเป็นบวก บางทีก็ลบ บางทีก็ศูนย์ ผมลองแล้วตามที่พี่ Badmanบอกมา ก็ไม่ได้ครับ ผมก็ไม่เข้าใจเหมือนกัน ขนาดจะใส่ลงไปยังไม่ได้เลยครับ และพอผมทำตามที่ psuchat@ji-net.com ลงไฟล์ตัวอย่างไว้ก็ไม่ได้ครับ แต่ถ้าสร้างทั้งTableขึ้นมาใหม่ โดยพิมพ์ตัวเลขติดลบ บวก หรือศูนย์ลงไป จะใช้ได้ครับ เลยต้องรบกวนถามผู้รู้อีกรอบครับ ขอบคุณครับ
6 @R05845
ลองส่งตัวอย่างมาให้ดูซิค่ะ เพื่อจะช่วยดูง่ายยิ่งขึ้น
7 @R05858
ภาพที่ส่งตามนี้ครับ ขอบคุณครับ
8 @R05859
เปลี่ยนเป็น =[Text24]-[Text49]

9 @R05866
แป่วววว!!! คือค่าตรงนี้เป็นค่าที่บางทีต้องแสดงเป็นลบน่ะครับ คือถ้ามีค่าเป็นลบให้เปลี่ยนค่านั้นเป็น ศูนย์ หรือไม่ก็เอาเป็นว่า ถ้ามีค่าเป็นลบ ก็ให้มีรูปแบบเป็น ตัวหนังสือสีดำ พื้นดำไปเลย จะได้ไม่ต้องมองเห็นค่าลบ อะไรแบบเนี๊ยครับ คือผมได้ลองจัดรูปแบบโดยใช้Set Format แล้ว ขนาดมีค่าเป็นลบ หรือต่ำกว่าค่า ศูนย์ ก็ยังไม่เปลี่ยนเลยครับ กลับขึ้นเหมือนเดิมฆรือกลับอ่านว่าค่านั้นมากกว่าศูนย์ ก็เลยงงอยู่ แต่รู้สึกว่า จะแสดงตามที่ Set Format ขึ้นมาเสี้ยววินาทีมั๊งครับ แล้วก็โชว์เหมือนเดิมคือสีที่กำหนดไว้ตอนแรกครับ ไม่รู้จะโชว์ทำไมแค่ .20วินาที งง!!! อย่างแรงเลยนิ
10 @R05867
เอาใหม่ครับ...
1. สมมติว่ามี text0,text2,text4 อยู่ใน Form โดย text4=text0 - text2
2. ให้ตั้ง property ของ text4 ดังนี้
enabled=false
locked=true
3. ที่เหตุการณ์ After Update ของ text0,text2 ให้ใส่ code ดังนี้

Select Case [Text0] - [Text2]
Case Is > 0
[Text4] = Format([Text0] - [Text2], "#,##0.00")
Text4.ForeColor = RGB(0, 0, 255)
Case Is = 0
[Text4] = Format(0, "#,##0.00")
Text4.ForeColor = RGB(0, 0, 0)
Case Is < 0
[Text4] = Format(0, "#,##0.00")
Text4.ForeColor = RGB(255, 0, 0)
Case Else
[Text4] = "-"
End Select

4. ที่ text4 ไม่ต้องตั้ง format

ลองดูใหม่ครับ...
11 @R05870
ขอบคุณครับคุณ BadMan หลังจากทำแล้ว เป็นดังภาพครับ ยังใช้ไม่ได้เลยครับ ทำยังไงดี
12 @R05875
ä´éáÅéǤÃѺ ¡ÇèÒ¨Ðä´é ¤×͵͹¹Õé ¶éÒ text51 µÔ´Åº ¨Ò¡¼ÅÅѾ¸ì¢Í§ text49-text24 ¶éÒà»ç¹Åº ¨Ðà»ç¹ªèͧ´ÓµÑÇ˹ѧÊ×Í´Ó(ÁͧàËç¹à»ç¹ªèͧ´Ó) ¶éÒ =>0 ¨Ðà»ç¹ªèͧ´Ó µÑÇ˹ѧÊ×ÍÊÕàËÅ×ͧ áµèµéͧä»ãÊè¤èÒàÃÔèÁµé¹ãËéªèͧ¹Õé´Ó´éÇ àÇÅÒà¢Õ¹¿ÍÃìÁ¤ÃѺ ¢Íº¤Ø³ ¤Ø³BadMan ÁÒ¡æ¤ÃѺ ·ÕèªèÇÂàËÅ×Í ¼Á·ÓµÒÁµÑÇÍÂèÒ§·ÕèâËÅ´ÁÒãËé´Ù¤ÃѺ (âËÅ´äÁè¤èͼèÒ¹àÅÂ) ŧàÅÂÅСѹ¤ÃѺ ·Ó·Ñé§text49,24Ẻ¹Õé

Private Sub Text49_AfterUpdate()
Select Case [Text49] - [Text24]
Case Is > 0
Text51.ForeColor = RGB(255, 255, 0)
Case Is = 0
Text51.ForeColor = RGB(255, 255, 0)
Case Is < 0
Text51.ForeColor = RGB(0, 0, 0)
Case Else
[Text51] = "-"
End Select
End Sub
13 @R05876
if text49-text24 <0 then
Text51 = 0
else
text51 = text49-text24
end if
14 @R05879
สมมติว่าทำตามแนวทางของผมนะครับ ที่ Control Source ของ
[text51] ไม่ต้องใส่อะไรลงไปครับ เพราะเรากำหนดให้แสดงค่า
ไว้แล้วที่เหตุการณ์ AfterUpdate ของ [text49],[text24]
ลองดูใหม่ครับ

..ถ้ายังไม่ได้อีกให้รบกวนส่งเป็นไฟล์ตัวอย่าง(แล้ว compact + ZIP)
จริงมาให้ดูครับ จะได้มีสมาชิกท่านอื่นๆ ช่วยดูให้ด้วยคุณจะได้รู้ผล
เร็วครับ เพราะผมดูปัญหานี้แล้วไม่น่าจะยากคุณน่าจะแก้มันได้ตั้งนานแล้ว
15 @R05886
แป่วววว!!! เมื่อคืนผมพิมพ์เป็นภาษาไทยนี่นาจะบอกว่าใช้ได้แล้วครับ ทำไมกลายเป็น ??? ไปหมด งง!!!
ตอนนี้ใช้ได้แล้วครับ คือทำให้ text51(ช่องรับผลลัพธ์ของ text49-text24)
เป็นสีเดียวกันหมดคือ ตัวอักษรและพื้นเป็นสีดำ แล้วก็แก้Code ที่ท่าน BadMan ให้มา นิดนึงครับ แล้วทำตรงAfterUpDate ของ text41 , text24
ผมได้ลองทำแบบของคุณGod แล้วครับ ผลลัพธ์ที่ติดลบ ยังคงแสดงติดลบอยู่ครับ แต่ขอบคุณมากครับ
ขอบตุณเพื่อนๆพี่ๆทุกคนนะครับที่ช่วยเหลือ โดยเฉพาะท่านBadMan สุขสันต์วันปีใหม่นะครับ
ใช้Codeนี้ครับ

Private Sub Text49_AfterUpdate()
Select Case [Text49] - [Text24]
Case Is > 0
Text51.ForeColor = RGB(255, 255, 0)
Case Is = 0
Text51.ForeColor = RGB(255, 255, 0)
Case Is < 0
Text51.ForeColor = RGB(0, 0, 0)
Case Else
[Text51] = "-"
End Select
End Sub

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