ล็อคแล้วคะ แต่ไม่สามารถ รับค่าจากเครื่องอ่านบัตรได้
น่าจะต้องสร้าง 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