กระทู้เก่าบอร์ด อ.Yeadram
1,211 3
URL.หัวข้อ /
URL
อยากกำหนดรูปแบบของข้อมูลจากโค๊ด
อยากกำหนดรูปแบบของข้อมูลจากโค๊ด
ตัวอย่าง : มี text box ที่ ฟอร์ม ต้องการกำหนดรูปแบบโดย
1.รับข้อมูลได้เฉพาะ ตัวเลข
2.ขนาดไม่เกิน 10 อักขระ เท่านั้น
3.กรณีที่ใส่ข้อมูลไม่ถึง 10 หลัก จะต้องไม่รับค่าจนกว่าจะถึง 10 หลัด
4.และแบบ กำหนดไว้ที่ 10 อักขระ แต่สามารถรับข้อมูลแม้ไม่ถึง 10 อักขระได้
อยากได้เป็นโค๊ดครับ รบกวนอาจารย์ด้วยครับ
ตัวอย่าง : มี text box ที่ ฟอร์ม ต้องการกำหนดรูปแบบโดย
1.รับข้อมูลได้เฉพาะ ตัวเลข
2.ขนาดไม่เกิน 10 อักขระ เท่านั้น
3.กรณีที่ใส่ข้อมูลไม่ถึง 10 หลัก จะต้องไม่รับค่าจนกว่าจะถึง 10 หลัด
4.และแบบ กำหนดไว้ที่ 10 อักขระ แต่สามารถรับข้อมูลแม้ไม่ถึง 10 อักขระได้
อยากได้เป็นโค๊ดครับ รบกวนอาจารย์ด้วยครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R17029
ใช้ input mask ครับ ไม่ต้องเขียน code ลอง search หา หรือ อ่าน help ดูครับ
2 @R17034
ก่อนอื่นผมบอกก่อนเลยว่าใช้ input mask อย่างที่ อ.PichaiTC แนะนำง่ายสุดแล้วครับ เป็นผมๆก็จะไม่เสียเวลามานั่งเขียนโค๊ดอะไรแบบนี้ เพราะจริงๆหากใช้เป็นโค๊ดมันต้องใช้หลาย Event ในการตรวจสอบ ทำให้เสียเวลามากๆ และก็ไม่รู้จะดีเท่ากับการใช้ input mask หรือเปล่าด้วยซ้ำ
แต่หากคุณถามเพื่อความรู้ และการนำไปต่อยอดอย่างอื่นๆแล้ว ผมก็พอจะตอบเป็นข้อๆให้คุณได้ดังนี้ครับ
สมมุติ Textbox คุณชื่อ Text1
1.รับข้อมูลได้เฉพาะ ตัวเลข
2.ขนาดไม่เกิน 10 อักขระ เท่านั้น
ตอบข้อ 1 และ 2
- Text1 > Event > On Key Press
3.กรณีที่ใส่ข้อมูลไม่ถึง 10 หลัก จะต้องไม่รับค่าจนกว่าจะถึง 10 หลัด
- Text1 > Event > Before Update
4.และแบบ กำหนดไว้ที่ 10 อักขระ แต่สามารถรับข้อมูลแม้ไม่ถึง 10 อักขระได้
- Text1 > Event > Before Update
ปล. นี่ยังใช้ไม่ได้จริงนะครับ เพราะยังไม่มีเรื่องของการแก้ไข จากโค๊ดหากเราทำการเลื่อนเคอร์เซอร์ไปเพื่อแก้เลข มันก็จะเกิน 10 หลักได้ ซื่อเราก็ต้องไปเขียนโค๊ดดักที่เหตุการณ์อื่นๆอีก ซึ่งผมขอยกตัวอย่างแค่นี้พอนะครับ ถ้าอยากเขียนเป็น VBA จริงๆ คงต้องลองต่อยอดเองดูครับ
แต่หากคุณถามเพื่อความรู้ และการนำไปต่อยอดอย่างอื่นๆแล้ว ผมก็พอจะตอบเป็นข้อๆให้คุณได้ดังนี้ครับ
สมมุติ Textbox คุณชื่อ Text1
1.รับข้อมูลได้เฉพาะ ตัวเลข
2.ขนาดไม่เกิน 10 อักขระ เท่านั้น
ตอบข้อ 1 และ 2
- Text1 > Event > On Key Press
If (KeyAscii < 47 Or KeyAscii > 58) And KeyAscii <> 8 Then
KeyAscii = 0
Else
If Me.Text1.SelStart > 9 Then 'หากเคอร์เซอร์อยู่ที่ตำแหน่ง 10 แล้วก็ไม่สามารถคีย์ต่อได้
KeyAscii = 0
End If
End If
3.กรณีที่ใส่ข้อมูลไม่ถึง 10 หลัก จะต้องไม่รับค่าจนกว่าจะถึง 10 หลัด
- Text1 > Event > Before Update
If Len(Me.Text1) <> 10 Then
Cancel = True
End If
4.และแบบ กำหนดไว้ที่ 10 อักขระ แต่สามารถรับข้อมูลแม้ไม่ถึง 10 อักขระได้
- Text1 > Event > Before Update
If Len(Me.Text1) > 10 Then
Cancel = True
End If
ปล. นี่ยังใช้ไม่ได้จริงนะครับ เพราะยังไม่มีเรื่องของการแก้ไข จากโค๊ดหากเราทำการเลื่อนเคอร์เซอร์ไปเพื่อแก้เลข มันก็จะเกิน 10 หลักได้ ซื่อเราก็ต้องไปเขียนโค๊ดดักที่เหตุการณ์อื่นๆอีก ซึ่งผมขอยกตัวอย่างแค่นี้พอนะครับ ถ้าอยากเขียนเป็น VBA จริงๆ คงต้องลองต่อยอดเองดูครับ
3 @R17045
ขอบคุณมากครับผม
Time: 0.3346s