Hej Om du har ett formulär med en textruta som heter txtPnr kan skriva så här för händelsen BeforeUpdate för textrutan: TACK !!!!!! Det var så hiskeligt länge sedan jag själv lärde mig Access så jag vet inte riktigt vilka böcker som är bäst just nu.lost fokus
Scriptet nedan funkar i ett exel ark, men hur gör man för att få inte i inmatnings formulär i acccess ??
Public Function ValidatePnr(Pnr) As Boolean
Dim sPnr As String
Dim lIdx As Long
Dim lNum As Long
Dim lSum As Long
On Error GoTo ValidatePnr_Err
' Tar bort ev bindestreck och de två första siffrorna vid ev fyrsiffrigt år
sPnr = Replace(CStr(Pnr), "-", "")
If Len(sPnr) = 12 Then sPnr = Mid$(sPnr, 3)
' Om strängen består av tio tecken går prog igenom dem ett och ett
If Len(sPnr) = 10 Then
For lIdx = 1 To 9 Step 2
lNum = CLng(Mid$(sPnr, lIdx, 1)) * 2
If lNum > 9 Then lNum = lNum \ 10 + lNum Mod 10
lSum = lSum + lNum + CLng(Mid$(sPnr, lIdx + 1, 1))
Next lIdx
ValidatePnr = (lSum Mod 10 = 0)
End If
Exit Function
ValidatePnr_Err:
End FunctionSv: lost fokus
Private Sub txtPnr_BeforeUpdate(Cancel As Integer)
If me.txtPnr.Text <> "" Then
If ValidatePnr(me.txtPnr.Text) = False Then
Cancel = True
MsgBox "Inte ett giltigt personnummer"
End If
End If
End Sub
Sv:lost fokus
Du löste problemet !!!!
Fråga: Finns det någon littratur eller dyligt där man kan öka sina egna kunskaper inom ämnet.
Mvh PeterSv: lost fokus
En bra FAQ hittar du på http://www.mvps.org/access
Där kan du också ladda ner exempeldatabasen Solutions.mdb som jag har lärt mig mycket av.
Lycka till!