AccessTr.neT

Tam Versiyon: TC no algoritması ve kontrol
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
bir yerde şu kodu buldum
accesse nasıl uyarlanır bu vb içinmiş
Kod:
Function TcDogrulaV2(ByVal tcKimlikNo As String) As Boolean
        Dim returnvalue As Boolean = False
        If (tcKimlikNo.Length <> 11) Then
            tcCustom.ErrorMessage = "<br />TC Kimlik Numarası 11 Haneli Olmalıdır."
            Return returnvalue
        End If
        Dim TcNo As Long = Long.Parse(tcKimlikNo)
        Dim BTCNO As Long = Long.Parse(Left(tcKimlikNo, 9))
        
        Dim C1 As Long = Long.Parse(Mid(tcKimlikNo, 1, 1))
        Dim C2 As Long = Long.Parse(Mid(tcKimlikNo, 2, 1))
        Dim C3 As Long = Long.Parse(Mid(tcKimlikNo, 3, 1))
        Dim C4 As Long = Long.Parse(Mid(tcKimlikNo, 4, 1))
        Dim C5 As Long = Long.Parse(Mid(tcKimlikNo, 5, 1))
        Dim C6 As Long = Long.Parse(Mid(tcKimlikNo, 6, 1))
        Dim C7 As Long = Long.Parse(Mid(tcKimlikNo, 7, 1))
        Dim C8 As Long = Long.Parse(Mid(tcKimlikNo, 8, 1))
        Dim C9 As Long = Long.Parse(Mid(tcKimlikNo, 9, 1))
        
        Dim Q1 As Long = ((10 - (((((((C1 + C3) + C5) + C7) + C9) * 3) + (((C2 + C4) + C6) + C8)) Mod 10)) Mod 10)
        Dim Q2 As Long = ((10 - (((((((C2 + C4) + C6) + C8) + Q1) * 3) + ((((C1 + C3) + C5) + C7) + C9)) Mod 10)) Mod 10)
        'Response.Write((((BTCNO * 100) + (Q1 * 10)) + Q2) & " - ")
        'Response.Write(tcKimlikNo)
        If ((((BTCNO * 100) + (Q1 * 10)) + Q2) = TcNo) Then
            tcCustom.ErrorMessage = ""
        Else
            tcCustom.ErrorMessage = "<br />Hatalı TC Kimlik Numarası."
        End If
        
        Return ((((BTCNO * 100) + (Q1 * 10)) + Q2) = TcNo)
    End Function
[/vb][vb]
bir de bu var ama bunları nasıl kullanacağım
Kod:
Private Function tcknkontrol(tckn As Double)
    Dim dizi(1 To 9) As Integer
    gecici = Int(tckn / 100)
    gecici2 = Int(tckn / 100)

    For i = 9 To 1 Step -1
        dizi(i) = gecici2 Mod 10
        gecici2 = Int(gecici2 / 10)
    Next i

    deg1 = dizi(9) + dizi(7) + dizi(5) + dizi(3) + dizi(1)
    deg2 = dizi(8) + dizi(6) + dizi(4) + dizi(2)
    toplam = deg1 * 3 + deg2
    kontrol1 = (10 - (toplam Mod 10)) Mod 10

    deg1 = kontrol1 + dizi(8) + dizi(6) + dizi(4) + dizi(2)
    deg2 = dizi(9) + dizi(7) + dizi(5) + dizi(3) + dizi(1)
    toplam = deg1 * 3 + deg2
    kontrol2 = (10 - (toplam Mod 10)) Mod 10

    gecici = gecici * 100 + kontrol1 * 10 + kontrol2
    If gecici = tckn Then tcknkontrol = True Else tcknkontrol = False
End Function

Private Function rastgelets(altsinir, ustsinir As Double) As Double
    Randomize
    rastgelets = Int((ustsinir - altsinir + 1) * Rnd + altsinir)
End Function

Private Sub Form_Load()
    Form1.Visible = False
    Dim a As Double
    a = 10000000000#
    While tcknkontrol(a) = False
        DoEvents
        a = rastgelets(10000000000#, 99999999999#)
    Wend
    Clipboard.Clear
    Clipboard.SetText a
    MsgBox a & " - Numara panoya kopyalandı, kullanmak için : ctrl+v", vbInformation, "Geçerli bir TC kimlik no bulundu"
    End
End Sub


tc kontrol.rar
Aşağıdaki linki inceleyiniz.

[Resim: adszpdn.jpg]

Tc Kimlik Numarası Kontrolü


Kullanılan kod:

Function TCKimlikNoYazimKontrol(tcid) As Boolean
Dim D(1 To 11) As Integer
For N = 1 To 11
D(N) = Mid(tcid, N, 1)
Next
top1 = D(1) + D(3) + D(5) + D(7) + D(9)
top2 = D(2) + D(4) + D(6) + D(8)

cd1 = (10 - (((3 * top1) + top2) Mod 10)) Mod 10
cd2 = (10 - (((3 * (top2 + cd1)) + top1) Mod 10)) Mod 10
If cd1 = D(10) And cd2 = D(11) Then
TCKimlikNoYazimKontrol = True
Else
TCKimlikNoYazimKontrol = False
End If
End Function
çok teşekkürler admin

elimde 6500 tane tc olan hasta listem var
bunların hepsi gerçek tc no
tablo adı --> "KIMLIKNO"
alan adı --> "TCNO"
alan adı --> "SUNUC"
Bu tabloyu baştan itibaren tüm numaraları kontrol ettirebilirmiyim
Tabloyu tarayacak
sonuç alanına da evet veya hayır yazacak
nasıl yapabilirim

Döngü kullanarak yapabilirsiniz. Önce kayıt sayısı bulunacak, sonra da 1 den son sayıya kadar tarayan bir döngü kullanbarak, form üzerinde görsel olarak da yapabilirsiniz. Ben bugün içinde zaman bulduğumda böyle bir çalışma hazırlarım size.
hani ado ile kayıt açılıp işlem uygulanıp sonucuna göre tabloya ekleniyordu
ama maalesef kod bilmediğim için düzgün bile anlatamıyorum
Sayfalar: 1 2