Olá, segue o código... fiz no excel, mas funciona no Access... Public Function ValidaCPF(CPF As String)
'Função de Validação de CPF
On Error GoTo Trata_Erro_CPF
Dim Soma1 As Integer
Dim Soma2 As Integer
Dim D1 As Integer
Dim D2 As Integer
Dim Mult As Integer
Dim i As Integer
Dim Tipo
CPF = Int(CPF)
'Caso o CPF tenha menos de 11 caracteres
If Len(CPF) < 11 Or CPF = "" Then
MsgBox "CPF incorreto, digite novamente!!", vbOKOnly
'Caso sejam repetidos os caracteres de 1 - 9
ElseIf CPF = "11111111111" Or CPF = "22222222222" Or CPF = "33333333333" _
Or CPF = "44444444444" Or CPF = "55555555555" Or CPF = "66666666666" _
Or CPF = "77777777777" Or CPF = "88888888888" Or CPF = "99999999999" Then
MsgBox "CPF incorreto, digite novamente!!", vbOKOnly
'Se não encontrar erro, prossegue.
Else
'*****************************************************************************
'Encontra o primeiro digito do CPF
Soma1 = 0
Mult = 11
For i = 1 To 9
Mult = Mult - 1
Soma1 = Soma1 + Mid(CPF, i, 1) * (Mult)
Next i
D1 = Soma1 Mod 11
If D1 < 2 Then
D1 = 0
Else
D1 = 11 - D1
End If
'*****************************************************************************
'Encontra o segundo digito do CPF
Soma2 = 0
Mult = 12
For i = 1 To 10
Mult = Mult - 1
Soma2 = Soma2 + Mid(CPF, i, 1) * (Mult)
Next i
D2 = Soma2 Mod 11
If D2 < 2 Then
D2 = 0
Else
D2 = 11 - D2
End If
'*****************************************************************************
If Mid(CPF, 10, 1) = D1 And Mid(CPF, 11, 1) = D2 Then
ValidaCPF = 1
'MsgBox "CPF Correto!!", vbOKOnly,
Else
MsgBox "CPF Inorreto!! Digite novamente", vbOKOnly,
ValidaCPF = 0
End If
End If
Trata_Erro_CPF: 'Tratamento de Erros do Sistema
If Err.Number = 13 Then
MsgBox "CPF incorreto, digite novamente!!", vbOKOnly,
End If
End Function