ขอ Code MsgBox ไม่ให้ใส่ตัวอักษรลงใน Textbox
กระทู้เก่าบอร์ด อ.Yeadram

 14,933   14
URL.หัวข้อ / URL
ขอ Code MsgBox ไม่ให้ใส่ตัวอักษรลงใน Textbox

ขอรบกวนหน่อยนะคะ อยากทราบการเขียน Code ให้แสดง MsgBox เวลาใส่ตัวอักษร หรือค่าติดลบ หรือตัวเลขที่มีค่าสูงเกินความเป็นจริง ลงใน Textbox โดยให้ใส่ได้เฉพาะค่าตัวเลขเท่านั้นค่ะ

ผู้รู้โปรดให้ความช่วยเหลือด้วยนะคะ

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

1 @R04174
2 @R04192
ขอบคุณค่ะ แต่ยังไม่ค่อยตรงกับความต้องการเท่าไหร่ คือต้องการให้ขึ้น MsgBox ขึ้นมาเตือน User ด้วยภาษาไทยค่ะไม่ใช่ MsgBox ของระบบ

เช่น
ถ้าใส่ตัวเลข ให้ขึ้นว่า "กรุณาใส่ข้อมูลเป็นตัวอักษร"
ถ้าใส่ตัวเลขติดลบ ให้ขึ้นว่า "ไม่สามารถใส่เครื่องหมายลบ"

กรุณาช่วยอีกสักครั้งนะคะ
3 @R04195
สมมุติว่า textbox ชื่อว่า text2

Private Sub Text2_BeforeUpdate(Cancel As Integer)
    If Nz(Me.Text2, "") = "" Then
        Exit Sub
    End If
    
    If Not IsNumeric(Me.Text2) Then
        MsgBox "กรุณาใส่ข้อมูลเป็นตัวเลข"
        Cancel = True
        Exit Sub
    End If
    
    If Val(Me.Text2) < 0 Then
        MsgBox "ไม่สามารถใส่เครื่องหมายลบ"
        Cancel = True
        Exit Sub
    End If
    
    If Val(Me.Text2) > 1000000 Then
        MsgBox "ห้ามป้อนค่ามากกว่า 1 ล้าน"
        Cancel = True
        Exit Sub
    End If
End Sub

จริงๆแล้ว มันเป็นฟังก์ชั่นและคำสั่งของภาษา VB ธรรมดาๆทั้งนั้น ขอให้เอาไปศึกษาและเปิดดูใน Help File เพิ่มเติมนะครับว่าแต่ละฟังก์ชั่นมันทำงานอย่างไร รับค่าอะไร ให้ค่าอะไร
4 @R04220
ขอบคุณค่ะ พอดีว่าพึ่งหัดเขียน VB เลยใช้คำสั่งได้ไม่ค่อยดี ขอบคุณที่ให้คำแนะนำค่ะ
5 @R04237
ขอรบกวนอีกครั้งค่ะ คือว่า Code ที่ให้มานั้นใช้ได้ในกรณีที่ไม่ได้เชื่อมต่อกับฐานข้อมูล หรือเชื่อมกับฐานข้อมูลที่มี Type = Text แต่ถ้าเป็น Type = Numeric จะมี Information ของระบบขึ้นมาเตือนว่าใส่ข้อมูลไม่ถูกต้องกับชนิดที่กำหนดไว้ในตาราง ขอรบกวนวิธีการแก้ไขด้วยค่ะ
6 @R04238
แก้ไขอะไรครับ ไม่เข้าใจ
7 @R04240
คือว่า แบบฟอร์มที่สร้างขึ้นนั้น มี Text box สำหรับบันทึกข้อมูลจำนวนเงินอยู่ ซึ่งมีชนิดข้อมูลเป็น Numeric ซึ่งโดยปกติแล้วเราจะไม่สามารถใส่ตัวอักษรลงไปใน Text box นั้นได้ โดย Access จะขึ้น Information มาให้ว่า " The value you entered isn't valid for this field. For example, you may have entered text in numberic field or a number that is larger than the FieldSize Seting Permits." จากนั้นแคทก้อได้ใช้ Code ที่ทางคุณสันติสุขให้ (ที่ห้ามใส่ตัวอักษร) ปรากฎว่ายังแสดง Information ดังกล่าวขึ้นมาอีก

จากนั้นแคทจึงทดลองนำ Code ดังกล่าวไปใส่ไว้ใน Textbox ที่มีชนิดข้อมูลเป็น Text ปรากฎว่า ใช้ได้ คือไม่สามารถใส่ข้อมูลเป็นตัวอักษรใส่ได้แต่ตัวเลข

จึงขอรบกวนขอความช่วยเหลือด้วยค่ะ
8 @R04242
ข้อมูลที่ป้อนมันไม่สัมพันธ์กับชนิดของข้อมูลของฟิลด์ในเทเบิลครับ แก้โดยการกำหนด InputMask property ของ textbox นั้นๆ (ตามลิงค์ในคำตอบครั้งแรกครับ)
9 @R04243
ขอบคุณสำหรับความช่วยเหลือค่ะ
10 @R05723
คือว่าจะใส่ ลูกนำ้ำ้กันที่จำนวนตัวเลข เขียนยังไงคะ

เช่น ในระบบตอนนี้เป็นอย่างนี้ 100000000 เเต่อย่างให้เป็น 1,000,000 ประมาณนี้อ่ะคะ ช่วยหน่อยนะคะ ขอบคุณคะ
11 @R05724
ให้ไปกำหนดที่ Format property ของเท็กส์บ็อกซ์เป็น Standard และกำหนด Decimal Place property เป็น 2 ครับ

ปล. 1) ทำไมพิมพ์ผิดเยอะจังครับ 2) อ่ะคะ ต้องเขียน อ่ะค่ะ , ขอบคุณคะ ต้องเขียน ขอบคุณค่ะ
12 @R19852
ขอถามอันนี้เพิ่มเติมได้ไหมคะ ถ้าข้อมูลตัวเลขติดลบ แต่เวลาแสดงเป็นรายงานอยากให้มันไม่เป็นติดลบให้เห็นเป็นวงเล็บแทนได้ไหมคะ เช่น -1,234.20 ให้แสดงเป็น (1234.20) แต่เวลารวมค่ามาให้ยังคงเป็นติดลบเหมือนเดิมให้นำมาลบกับเลขรวมทั้งสิ้นอีกที ช่วยตอบทีนะคะ
13 @R19853
กำหนด Format property ของเท็กซ์บ็อกซ์ ให้มีค่าเป็น #,##0[Green];(#,##0)[Red] (ค่าบวกจะเป็นสีเขียว ค่าลบจะอยู่ในวงเล็บและเป็นสีแดง ถ้าไม่ต้องการแยกสีก็เอา [Green] หรือ [Red] ออกไปได้ครับ)   และกำหนด Decimal Place property เป็นจำนวนทศนิยมที่ต้องการครับ
14 @R19854
(แก้ไขใหม่)

กำหนด Format property ของเท็กซ์บ็อกซ์ ให้มีค่าเป็น #,##0\Green/;(#,##0)\Red/ (ค่าบวกจะเป็นสีเขียว ค่าลบจะอยู่ในวงเล็บและเป็นสีแดง ถ้าไม่ต้องการแยกสีก็เอา หรือ ออกไปได้ครับ)   และกำหนด Decimal Place property เป็นจำนวนทศนิยมที่ต้องการครับ

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