ป้องกันไม่ไห้กรอกข้อมูลจากคีย์บอร์ดได้หรือไม่ค่ะ



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

03 ก.ค. 63 , 11:32:01
อ่าน 269 ครั้ง

MAKI

คือหนูมี ฟรอมไว้รับค่า จากบัตรประชาชน(รับจากเครื่องเสียบบัตร)
แต่ก็สามารถพิมพ์เลข 13 หลักลงไปเองได้ในช่วง textbox ที่ใช้รับค่า
อยากจะป้องกันการ กรอกเลข 13 หลัก จากคีบอร์ด คะ

 

03 ก.ค. 63 , 16:10:13
ตอบกลับ #1

nonc31

ก็ล็อกไว้ (Locked=True)

 

08 ก.ค. 63 , 09:43:13
ตอบกลับ #2

MAKI

ล็อคแล้วคะ แต่ไม่สามารถ รับค่าจากเครื่องอ่านบัตรได้

 

08 ก.ค. 63 , 11:16:46
ตอบกลับ #3

PNR

ล็อคแล้วคะ แต่ไม่สามารถ รับค่าจากเครื่องอ่านบัตรได้

น่าจะต้องสร้าง textbox 2 ตัวนะครับ
ตัวแรกไว้รับค่าจากเครื่องแสกน (เอาไปแอบๆไว้)ครับ ชื่อ txtfromscan
ตัวต่อมาคือตัวที่แสดงบนฟอร์มชื่อ txtPersonalID สถานะ Locked = true นะครับ

แนวทางคือรับค่าจาก txtfromscan  แล้วมาแสดงที่ txtPersonalID ที่มีสถานะ Locked ครับ
โค้ด
Private Sub Command6_Click()
Me.txtFromScan.SetFocus  'โค้ดที่ปุ่มเพื่อรับข้อมูลใหม่
End Sub

Private Sub txtFromScan_AfterUpdate() 'หลังจากเสียบบัตรแสกนแล้ว Cursor วิ่งไป textbox ต่อไปให้แสดงเลขประชาชนใน textbox ชื่อ txtPersonalID
Dim StrPersonalID 'สร้างตัวแปรเก็บรหัสประชาชน
If Not IsNull(Me.txtFromScan) Then
StrPersonalID = Me.txtFromScan
If Len(StrPersonalID) = 13 Then 'ใช้ Len เช็คว่าตัวเลขครบ 13 หลักหรือไม่ ถ้าไม่ใช่เราจะไม่แสดงรหัสประชาชน
Me.txtPersonalID = StrPersonalID
Else
MsgBox "รหัสประจำตัวประชาชนไม่ถูกต้อง", vbInformation, "แจ้งเตือน!!"
End If
End If
End Sub

Private Sub txtFromScan_GotFocus()
Me.txtFromScan = Null 'กำหนดให้เมื่อ Cursor ชี้ที่ textbox นี้ให้เป็นค่าว่างรอรับรหัสประชาชนใหม่
End Sub

« แก้ไขครั้งสุดท้าย: 08 ก.ค. 63 , 11:22:24 โดย PNR »
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI


บอร์ดเรียนรู้ Access สำหรับคนไทย