กระทู้เก่าบอร์ด อ.Yeadram
1,358 7
URL.หัวข้อ /
URL
ขอทราบวิธีใช้ Code ตรวจสอบเลขประชาชนค่ะ
พอดีค้นหาพบ หนูเห็นว่ามีประโยชน์มากอยากขอนำไปใช้ค่ะ เป็น Code ที่อาจารย์ yeadram กรุณาแนะนำไว้ แต่ไม่ทราบวิธีนำไปใช้ว่า ควรนำไปใส่ในเหตุการณ์ไหนอย่างไร
พบอยู่สอง Code ดังนี้ค่ะ
========================
==========================
========================
ได้โปรดแนะนำวิธีนำไปใช้ให้หน่อยนะคะ
ขอบคุณค่ะ
พบอยู่สอง Code ดังนี้ค่ะ
========================
Function ThaiIDcheck(ByVal IDnumber As String) As Boolean
Dim i, x As Integer
If Len(IDnumber) <> 13 Then GoTo chkFalse
For i = 1 To 13
If Not IsNumeric(Mid(IDnumber, i, 1)) Then GoTo chkFalse
Next
If CLng(Left(IDnumber, 1)) = 9 Then GoTo chkFalse 'ราชวงศ์.. ไม่เช็ค
If CLng(Left(IDnumber, 1)) = 0 Then GoTo chkFalse 'เป็นไปไม่ได้
i = 0
For j = 1 To 12
i = i + ((14 - j) * CLng(Mid(IDnumber, j, 1)))
Next
x = Right(11 - (i Mod 11), 1)
ThaiIDcheck = False
If CInt(Right(IDnumber, 1)) = x Then ThaiIDcheck = True
Exit Function
chkFalse:
ThaiIDcheck = False
End Function
==========================
Public Function ThaiIDcheck(ByVal IDnumber As String) As Boolean
Dim m1, m2 As Long
ThaiIDcheck = False
If CLng(Left(IDnumber, 1)) = 9 Then Exit Function ' ราชวงศ์
If Len(IDnumber) <> 13 Then Exit Function
For m1 = 1 To 12
If Not IsNumeric(Mid(IDnumber, m1, 1)) Then
Exit Function
Else
m2 = m2 + ((14 - m1) * Mid(IDnumber, m1, 1))
End If
Next
If Right(IDnumber, 1) = Right(11 - (m2 Mod 11), 1) Then ThaiIDcheck = True
End Function
Private Sub PID_LostFocus()
if thaiidcheck(me.pid) =false then
...
...
else
...
...
end if
End sub
========================
ได้โปรดแนะนำวิธีนำไปใช้ให้หน่อยนะคะ
ขอบคุณค่ะ
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R21165
ขอบคุณค่ะอาจารย์
หนูจะลองทำดูนะคะ
หนูจะลองทำดูนะคะ
3 @R21177
โปรดช่วยแก้ไขเพิ่มเติมอีกหน่อยนะคะ
การตรวจสอบ ใช้งานได้ดีเลยค่ะ
แต่หนูอยากให้ Code ยืดหยุ่นผ่อนคลายอีกหน่อยค่ะ
คืออยากให้แค่มีข้อความแจ้งเตือนเท่านั้นก็พอ หากผู้ใช้ยังคงยืนยันจะใช้เลขนั้นอยู่ ก็ยอมให้ผ่านไปได้
ทำนองว่าฉันเตือนคุณแล้วนะว่่ามันผิด หากยังดึงดันจะไปต่อก็ตามใจ
เมื่อขึ้นเร็คคอร์ดใหม่ก็ตรวจสอบกันใหม่
ประมาณนี้ ต้องแก้ไข Code อย่างไรคะ
ขอรบกวนอีกหน่อยค่ะอาจารย์
การตรวจสอบ ใช้งานได้ดีเลยค่ะ
แต่หนูอยากให้ Code ยืดหยุ่นผ่อนคลายอีกหน่อยค่ะ
คืออยากให้แค่มีข้อความแจ้งเตือนเท่านั้นก็พอ หากผู้ใช้ยังคงยืนยันจะใช้เลขนั้นอยู่ ก็ยอมให้ผ่านไปได้
ทำนองว่าฉันเตือนคุณแล้วนะว่่ามันผิด หากยังดึงดันจะไปต่อก็ตามใจ
เมื่อขึ้นเร็คคอร์ดใหม่ก็ตรวจสอบกันใหม่
ประมาณนี้ ต้องแก้ไข Code อย่างไรคะ
ขอรบกวนอีกหน่อยค่ะอาจารย์
4 @R21178
if not thaiidcheck(me.pid) then
if Msgbox("เลขที่บัตรประชาชนไม่ถูกต้อง ยังยืนยันจะใส่เลขนี้หรือไม่", vbQuestion + vbDefaultButton2 + vbYesNo) = vbNo then
Cancel = True
Exit Sub
end if
end if
' ข้างล่างนี้โค้ดที่ให้ทำเมื่อเลขบัตรประชาชนถูกต้อง หรือไม่ถูกต้องแต่ให้ปล่อยผ่าน
...
...
...
if Msgbox("เลขที่บัตรประชาชนไม่ถูกต้อง ยังยืนยันจะใส่เลขนี้หรือไม่", vbQuestion + vbDefaultButton2 + vbYesNo) = vbNo then
Cancel = True
Exit Sub
end if
end if
' ข้างล่างนี้โค้ดที่ให้ทำเมื่อเลขบัตรประชาชนถูกต้อง หรือไม่ถูกต้องแต่ให้ปล่อยผ่าน
...
...
...
5 @R21179
สำเร็จแล้ว
ขอบคุณอย่างยิ่งค่ะอาจารย์
ขอบคุณอย่างยิ่งค่ะอาจารย์
6 @R21384
ขอสอบถามเพิ่มเติม เพื่อเป็นความรู้ค่ะ
กรณี เลขประชาชนนั้นหนูทำเสร็จเรียบร้อยแล้วค่ะอาจารย์
แต่มันจะมีเลขรหัสอีกชุดหนึ่ง ซึ่งน่าจะเกี่ยวข้องกันคือ เลขรหัสประจำบ้าน
เลขรหัสประจำบ้านดูแล้วมันมีเพียง 11 หลัก เราจะใช้วิธีตรวจสอบ
แบบเดียวกับที่ใช้ตรวสอบเลขประชาชนได้หรือไม่คะ
หากได้ ต้องเขียนโค้ดอย่างไรคะอาจารย์
ขอบคุณค่ะ
กรณี เลขประชาชนนั้นหนูทำเสร็จเรียบร้อยแล้วค่ะอาจารย์
แต่มันจะมีเลขรหัสอีกชุดหนึ่ง ซึ่งน่าจะเกี่ยวข้องกันคือ เลขรหัสประจำบ้าน
เลขรหัสประจำบ้านดูแล้วมันมีเพียง 11 หลัก เราจะใช้วิธีตรวจสอบ
แบบเดียวกับที่ใช้ตรวสอบเลขประชาชนได้หรือไม่คะ
หากได้ ต้องเขียนโค้ดอย่างไรคะอาจารย์
ขอบคุณค่ะ
7 @R21385
อันนี้ผมไม่ทราบจริงๆครับ ต้องติดต่อกรมการปกครอง ก.มหาดไทยดูครับ เพราะถึงแม้จะมีการใส่ Check Digit เข้าไปก็ตาม แต่วิธีคำนวนหาก็มีหลายสูตรครับ
Time: 0.3797s
Private Sub PID_BeforeUpdate(Cancel As Integer)
if not thaiidcheck(me.pid) then
Cancel = True
Msgbox "เลขที่บัตรประชาชนไม่ถูกต้อง"
...
else
...
...
end if
End sub