Problemas con valores en access 2003

hola, tengo problemas al llamar a unos valores....
defino al principio de todo:
Option Compare Database
Dim final As String
Dim valorfinalcif As String
..............
Private Sub cif_KeyPress(KeyAscii As Integer)
valorfinalcif = 0
con lo cual supongo que la variable valorfinalcif tomo el valor de 0, así que empiezo a utilizarla......
en esta parte, si he pulsado el 9º carácter del cif (pensando que el primero lo toma como 0) lo que quiero hacer es compararlo con el calculo que hice del dígito de control DC en una función aparte, entonces:
'si es el ultimo carácter, llamamos a la función para que nos diga que valor tendrá el DC
If Me.cif.SelStart = 8 And KeyAscii > 31 Then
valorfinalcif = Val(Mid(cif, 9, 1))
"esto me coge el valor del ultimo dígito pulsado"
MsgBox "valorfinalcif= " & valorfinalcif
"aquí la variable toma un valor nuevo, llamémosle ahora b"
'Calculamos el dígito control por medio de una función
DC = CalculoDigitoControl(Left(Me.cif.Text, 8))
MsgBox "se mostrara el DC= " & DC
If DC = valorfinalcif Then MsgBox "todo correcto"
If Not DC = valorfinalcif Then KeyAscii = 9: MsgBox "Ultimo carácter no valido, debería ser " & DC: valorfinalcif = 0
End If
End Sub
la cosa es que funciona en parte, ya que si genero un error en el ultimo dígito para que valorfinalcif no coincida con DC y me salte esa parte del código lo hace, pero valorfinal no coge de nuevo el valor 0 sino que sige con el anteriormente llamado como b
¿me explique?
como hago para que no guarde ese valor y empiece de nuevo con la comparación del ultimo dígito
gracias

Añade tu respuesta

Haz clic para o