身份證字號檢查程式


Button元件*2, Label元件 *2, TextBox元件 *1

程式檔案

程式碼

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 Dim idNo, D(9) As String

 idNo = UCase(Label1.Text)
 If (Len(Label1.Text) <> 10) Then
  Label2.Text = "身份字號為10個字元"
 ElseIf (Mid(idNo, 1, 1) < "A") Or (Mid(idNo, 1, 1) > "Z") Then
  Label2.Text = "身份字號第一個字元需為字母"
 Else

   For i = 0 To 9 ' 身份證號逐一讀到陣列D中
     D(i) = Mid(idNo, i + 1, 1)
   Next

   Dim x, x1, x2, y As Integer
   '字母轉換 A-10 B-11 ........O-35 I&O位置未照順序
   x = InStr("ABCDEFGHJKLMNPQRSTUVXYWZIO", D(0)) + 9
   x1 = x \ 10 ' 取x的十位數
   x2 = x Mod 10 ' 取x的個位數

    y = x1 + 9 * x2 + 8 * Val(D(1)) + 7 * Val(D(2)) + 6 * Val(D(3))
   + 5 * Val(D(4)) + 4 * Val(D(5)) + 3 * Val(D(6)) + 2 * Val(D(7)) _
   + Val(D(8)) + Val(D(9))

    If ((y Mod 10) <> 0) Then
    Label2.Text = "身份字號輸入錯誤 ! ....."
    Else
    Label2.Text = "身份字號輸入正確 ! ....."
    End If
  End If
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 End
End Sub