กระทู้เก่าบอร์ด อ.Yeadram
15,144 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
http://www.thai-access.com/yeadram_view.php?topic_id=130
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 เพิ่มเติมนะครับว่าแต่ละฟังก์ชั่นมันทำงานอย่างไร รับค่าอะไร ให้ค่าอะไร
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 ปรากฎว่า ใช้ได้ คือไม่สามารถใส่ข้อมูลเป็นตัวอักษรใส่ได้แต่ตัวเลข
จึงขอรบกวนขอความช่วยเหลือด้วยค่ะ
จากนั้นแคทจึงทดลองนำ Code ดังกล่าวไปใส่ไว้ใน Textbox ที่มีชนิดข้อมูลเป็น Text ปรากฎว่า ใช้ได้ คือไม่สามารถใส่ข้อมูลเป็นตัวอักษรใส่ได้แต่ตัวเลข
จึงขอรบกวนขอความช่วยเหลือด้วยค่ะ
8 @R04242
ข้อมูลที่ป้อนมันไม่สัมพันธ์กับชนิดของข้อมูลของฟิลด์ในเทเบิลครับ แก้โดยการกำหนด InputMask property ของ textbox นั้นๆ (ตามลิงค์ในคำตอบครั้งแรกครับ)
9 @R04243
ขอบคุณสำหรับความช่วยเหลือค่ะ
10 @R05723
คือว่าจะใส่ ลูกนำ้ำ้กันที่จำนวนตัวเลข เขียนยังไงคะ
เช่น ในระบบตอนนี้เป็นอย่างนี้ 100000000 เเต่อย่างให้เป็น 1,000,000 ประมาณนี้อ่ะคะ ช่วยหน่อยนะคะ ขอบคุณคะ
เช่น ในระบบตอนนี้เป็นอย่างนี้ 100000000 เเต่อย่างให้เป็น 1,000,000 ประมาณนี้อ่ะคะ ช่วยหน่อยนะคะ ขอบคุณคะ
11 @R05724
ให้ไปกำหนดที่ Format property ของเท็กส์บ็อกซ์เป็น Standard และกำหนด Decimal Place property เป็น 2 ครับ
ปล. 1) ทำไมพิมพ์ผิดเยอะจังครับ 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 เป็นจำนวนทศนิยมที่ต้องการครับ
หมายเหตุ : เนื่องจากไม่สามารถพิมพ์อักษร [ ] ได้โดยตรง ขอให้เปลี่ยน \ / เป็น [ ] ด้วยนะครับ
กำหนด Format property ของเท็กซ์บ็อกซ์ ให้มีค่าเป็น #,##0\Green/;(#,##0)\Red/ (ค่าบวกจะเป็นสีเขียว ค่าลบจะอยู่ในวงเล็บและเป็นสีแดง ถ้าไม่ต้องการแยกสีก็เอา หรือ ออกไปได้ครับ) และกำหนด Decimal Place property เป็นจำนวนทศนิยมที่ต้องการครับ
หมายเหตุ : เนื่องจากไม่สามารถพิมพ์อักษร [ ] ได้โดยตรง ขอให้เปลี่ยน \ / เป็น [ ] ด้วยนะครับ
Time: 0.3966s