Nu när det är aktuellt med att använda hela personnumret vilket innebär att årtalet skrivs med fyra siffror. Finns det någon som har gjort ett makro till Access 2000 som kontrollerar om personnumret är korrekt eller ej? kanske den där hjälper? http://www.kentexcel.com/VB-tips.htm#PersNr Ne de tar bara personnummer där årtalet skrivs med två siffror. Nu har vi ju personnummer med 19xx samt 20xx. Jo men det är ju ingen skillnad.... Ahhh då är jag med på det hela. Det här blev lösningen då. Du bör göra ytterligare en koll så kontroll på att dina första siffror är ett giltigt datum.Kontrollera personnummer.
Sv: Kontrollera personnummer.
Sv:Kontrollera personnummer.
Sv: Kontrollera personnummer.
Kontrollsiffran räknas ut på ett personnumemr utan århundrade, så du får helt enkelt skala bort de första två siffrorna innan du gör kontrollen.
// JohanSv:Kontrollera personnummer.
Private Sub Personnummer_AfterUpdate()
Dim i As Integer
Dim x As Integer
Dim kSiffra As Integer
Dim resten As Integer
Dim Subtotal As Integer
Dim Testnr$
Dim Kontrollsumma As Integer
Testnr = Mid(Personnummer, 3, 5) & Mid(Personnummer, 8, 3)
Kontrollsumma = 0
For i = 1 To 9 Step 2
x = 2 * Val(Mid(Testnr, i, 1))
If x >= 10 Then
Subtotal = 1 + x - 10
Else
Subtotal = x
End If
Kontrollsumma = Kontrollsumma + Subtotal
Next i
For i = 2 To 8 Step 2
Subtotal = Val(Mid(Testnr, i, 1))
Kontrollsumma = Kontrollsumma + Subtotal
Next i
resten = Kontrollsumma Mod 10
If resten = 0 Then
kSiffra = 0
Else
kSiffra = 10 - resten
End If
If kSiffra <> Val(Right(Personnummer, 1)) Then
Beep
i = MsgBox("Ogiltigt personnummer.", vbCritical, prog)
[Personnummer].SetFocus
End If
End SubSv: Kontrollera personnummer.
Annars brukar 0000000000 gå genom många personnummerkontroller.
Samt det går samtidigt att kontroller att datumet inte är större än dagens datum.
/Micke