Access - Comprobar letra dni

 
Vista:

Comprobar letra dni

Publicado por Francisco (9 intervenciones) el 09/03/2006 13:49:30
Tengo un campo en access que contiene NIF.

Cómo puedo hacer para evitar que alguien introduzca un Nif incorrecto(que compruebe la letra).?

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Comprobar letra dni

Publicado por oizito (7 intervenciones) el 09/03/2006 15:23:17
Hola Francisco,
Aquí tienes una posible solución, la adapté hace tiempo de una web y me ha funcionado bién.
En este caso teng un formulario de chequeo de letras de NIF, con solo un boton [btnPrueba] y un textbox [textBoxNif], al final te muestra un mensaje de si es verdadero o falso. Personalizatelo a tu gusto ;-)

Private Sub btnPrueba_Click()
Dim VREAL As Long, VENTERO As Long, Letra As String, nifAcomprobar As String, resultado As Boolean
nifAcomprobar = textBoxNif
If Len(Trim(nifAcomprobar)) <> 9 Then
resultado = False
Else
Letra = UCase(Right(nifAcomprobar, 1))
If Letra >= "A" And Letra <= "Z" Then
VREAL = Val(nifAcomprobar)
VENTERO = VREAL - ((Fix(VREAL / 23)) * 23) + 1
Select Case VENTERO
Case 1, 24
If Letra = "T" Then
resultado = True
Else
resultado = False
End If
Case 2
If Letra = "R" Then
resultado = True
Else
resultado = False
End If
Case 3
If Letra = "W" Then
resultado = True
Else
resultado = False
End If
Case 4
If Letra = "A" Then
resultado = True
Else
resultado = False
End If
Case 5
If Letra = "G" Then
resultado = True
Else
resultado = False
End If
Case 6
If Letra = "M" Then
resultado = True
Else
resultado = False
End If
Case 7
If Letra = "Y" Then
resultado = True
Else
resultado = False
End If
Case 8
If Letra = "F" Then
resultado = True
Else
resultado = False
End If
Case 9
If Letra = "P" Then
resultado = True
Else
resultado = False
End If
Case 10
If Letra = "D" Then
resultado = True
Else
resultado = False
End If
Case 11
If Letra = "X" Then
resultado = True
Else
resultado = False
End If
Case 12
If Letra = "B" Then
resultado = True
Else
resultado = False
End If
Case 13
If Letra = "N" Then
resultado = True
Else
resultado = False
End If
Case 14
If Letra = "J" Then
resultado = True
Else
resultado = False
End If
Case 15
If Letra = "Z" Then
resultado = True
Else
resultado = False
End If
Case 16
If Letra = "S" Then
resultado = True
Else
resultado = False
End If
Case 17
If Letra = "Q" Then
resultado = True
Else
resultado = False
End If
Case 18
If Letra = "V" Then
resultado = True
Else
resultado = False
End If
Case 19
If Letra = "H" Then
resultado = True
Else
resultado = False
End If
Case 20
If Letra = "L" Then
resultado = True
Else
resultado = False
End If
Case 21
If Letra = "C" Then
resultado = True
Else
resultado = False
End If
Case 22
If Letra = "K" Then
resultado = True
Else
resultado = False
End If
Case 23
If Letra = "E" Then
resultado = True
Else
resultado = False
End If
End Select
Else
resultado = False
End If
End If
MsgBox resultado
End Sub

espero que te sirva,
salu2 desde BCN!
isaakote!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algo más sencillo

Publicado por 2pl (775 intervenciones) el 09/03/2006 16:53:58
Los NIF son numeros y por lo tanto no son incorrectos. Lo que te pongo es una función que calcula una letra en función de un número introducido pasado como string.

Public Function CalculaNIF(DNI As String) As String

If Mid(DNI, 1, 8) > 0 Then
CalculaNIF = Trim(Mid(DNI, 1, 8)) & Mid("TRWAGMYFPDXBNJZSQVHLCKE", (Mid(DNI, 1, 8) Mod 23) + 1, 1) ..... esto es continuacion de la linea anterior
Else
CalculaNIF = ""
End If

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

verificación y no creación...

Publicado por oizito (7 intervenciones) el 09/03/2006 17:22:38
Hola 2pl, sin malos rollos pero me pareció que pedia que una verificación de lo que le introducian, no que le crearamos nosotros la letra ;-)

salu2!
isaakote!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:verificación y no creación...

Publicado por 2pl (775 intervenciones) el 09/03/2006 18:19:22
Oizito, no se a que te refieres "sin malos rollos", si a ti te parecio lo que dices, pues le contestaste correctamente.
Si Francisco quiere una verificación, que explique de que ¿del numero dependiendo de la letra que introduzcan? ¿ de la letra dependiendo del numero que introduzcan ?, de todas formas con esa función puede hacer la verificación que quiera y no dejaras de reconocer (como buen programador) que es bastante más claro esta función que la que tu pusiste con toda la buena intención.
Un cordial saludo y aqui estamos para aprender y aportar lo mejor que sepamos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:verificación y no creación...

Publicado por oizito (7 intervenciones) el 10/03/2006 09:14:58
me parece bien ;-)

salu2!
isaakote!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:verificación y no creación...

Publicado por francisco (9 intervenciones) el 11/03/2006 09:55:19
Yo habia pensado en la letra pero viendo mis necesidades creo que las 2 me van a ser útiles.

Muchas grascias tíos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar