กระทู้เก่าบอร์ด อ.Yeadram
1,884 6
URL.หัวข้อ /
URL
ให้เตือนว่าคีย์ตัวเลขไม่ครบนะ
ต้องการทำตารางข้อมูลพนักงานค่ะ แล้วทำช่อง เลขประจำตัวประชาชน กำหนดชนิดข้อมูลเป็นText และกำนดขอบเขตข้อมูลเป็น 13 การคีย์ข้อมูลจริง ๆ แล้ว ถ้าคีย์ไม่ถึง 13 ตัว อยากให้มี pop up เตือนขึ้นมาประมาณว่า ใส่ตัวเลขไม่ครบ ไม่ทราบว่าต้องกำหนดกฏการตรวจสอบว่าอย่างไรคะ หรือต้องกำหนดชนิดข้อมูลหรือขอบเขตข้อมูลเป็นอย่างอื่นคะ .. ขอบคุณค่ะ
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R12772
ขอบคุณค่ะ จะลองทำดูนะคะ
3 @R12773
เย้ ๆๆๆ ได้แล้วค่ะ ขอบคุณค่ะ
4 @R12806
ที่น่าตรวจสอบอีกอันนึงคือ เลขประชาชน 13 หลักที่กรอก ถูกต้องตามหลักการ ของกระทรวงมหาดไทยหรือไม่....(ถ้าสนใจ ก็จะได้นำ Code มาศึกษาดูครับ)
5 @R12811
น่าสนใจครับ ขอบคุณล่วงหน้าเลยครับ
6 @R12851
ตรวจสอบเลขประชาชน 13 หลักที่กรอก ถูกต้องตามหลักการ ของกระทรวงมหาดไทยครับ....
ชื่อตาราง = OFFICERS
ชื่อฟิลด์ที่ตรวจสอบ = PID
-------------------------------------------
ชื่อฟอร์ม = OFFICERS
ชื่อออบเจ็คที่ใช้ (Text Box) = PID
เหตุการณืที่ใช้ = LostFocus หรืออย่างอื่น
Private Sub PID_LostFocus()
Dim Cal As Integer
Dim Sum As Integer
Dim Last_Card As Integer
Dim chk As Integer
Dim C2 As Integer
Dim C1 As Integer
num = PID.Text
If Len(Trim(num)) = 13 Then
Sum = 0
For i = 1 To 12
Cal = Mid(Trim(num), i, 1) * (13 - (i - 1))
Sum = Sum + Cal
Next
C1 = 11 - (Sum Mod 11)
Last_Card = Right(C1, 1)
C2 = Mid(Trim(num), 13, 1)
If Last_Card <> C2 Then
If (MsgBox("เลขประจำตัวประชาชนผิดพลาด" & Chr(13) & Chr(10) & "ต้องการแก้ไขใหม่หรือไม่", vbYesNo, "ตรวจสอบ) = vbYes) Then
Chk_PID = True
PID.SetFocus
Else
FNAME.SetFocus
End If
Else
FNAME.SetFocus
End If
Else
MsgBox "เลขประชาชน 13 หลักมีไม่ครบ", vbOKOnly, "ตรวจสอบ"
Chk_PID = True
PID.SetFocus
End If
End Sub
ชื่อตาราง = OFFICERS
ชื่อฟิลด์ที่ตรวจสอบ = PID
-------------------------------------------
ชื่อฟอร์ม = OFFICERS
ชื่อออบเจ็คที่ใช้ (Text Box) = PID
เหตุการณืที่ใช้ = LostFocus หรืออย่างอื่น
Private Sub PID_LostFocus()
Dim Cal As Integer
Dim Sum As Integer
Dim Last_Card As Integer
Dim chk As Integer
Dim C2 As Integer
Dim C1 As Integer
num = PID.Text
If Len(Trim(num)) = 13 Then
Sum = 0
For i = 1 To 12
Cal = Mid(Trim(num), i, 1) * (13 - (i - 1))
Sum = Sum + Cal
Next
C1 = 11 - (Sum Mod 11)
Last_Card = Right(C1, 1)
C2 = Mid(Trim(num), 13, 1)
If Last_Card <> C2 Then
If (MsgBox("เลขประจำตัวประชาชนผิดพลาด" & Chr(13) & Chr(10) & "ต้องการแก้ไขใหม่หรือไม่", vbYesNo, "ตรวจสอบ) = vbYes) Then
Chk_PID = True
PID.SetFocus
Else
FNAME.SetFocus
End If
Else
FNAME.SetFocus
End If
Else
MsgBox "เลขประชาชน 13 หลักมีไม่ครบ", vbOKOnly, "ตรวจสอบ"
Chk_PID = True
PID.SetFocus
End If
End Sub
Time: 0.2507s
เช่นกรณีเลขประจำตัวประชาชนก็พิมพ์
0-0000-00000-00-0
(แล้ว access จะแปลงเป็น 0\-0000\-00000\-00\-0 ให้)
หรือจะกำหนดที่ property ของ textbox ก็ได้