Comproba DNI / NIF con Vb6 (Visual Basic 6)

Bienvenidos a VerTutoriales.com, en esta ocasión os traigo del recuerdo una función para comprobar el DNI o NIF en vb6 de un cliente/proveedor o lo que sea que tenga DNI (claro).

Esta función es muy utilizada en programas de gestión donde se deben tomar datos (en mi caso clientes) y que me ha traido recuerdos de cuando estudiaba programación en el instituto donde nos ponían algunos ejercicios y este precisamente lo tuvimos que preparar para diferentes lenguajes, hasta en el mítico Cobol! que muchos ni sabréis lo que es!

Pero dejando de lado un poco esta melancolía por la programación cuando internet era de 56k… vayamos al grano, os dejo la función que estáis buscando:

‘Devuelve el NIF del cliente con la letra que debiera de llevar
Function CompruebaNIF(strA As String) As String

Const cCADENA = «TRWAGMYFPDXBNJZSQVHLCKE»
Const cNUMEROS = «0123456789»
Dim strT As String, strB As String
Dim a#, NIF#, b#, c#
Dim i As Integer

strT = Trim$(strA)
If Len(strT) = 0 Then Exit Function

strB = «»
‘—Dejar sólo los números…
For i = 1 To Len(strA)
If InStr(cNUMEROS, Mid$(strA, i, 1)) Then
strB = strB + Mid$(strA, i, 1)
End If
Next
strA = strB
a# = 0
NIF# = Val(strA)
Do
b# = Int(NIF# / 24)
c# = NIF# – (24 * b#)
a# = a# + c#
NIF# = b#
Loop While b# <> 0
b# = Int(a# / 23)
c# = a# – (23 * b#)
CompruebaNIF = Trim$(strA) + «-» + Mid$(cCADENA, c# + 1, 1)

End Function

La función como tal, recibe el parámetro del nif (con o sin letra) y toma solamente los caracteres numéricos para realizar la operación y tomar la letra que le pertenezca, montando la cadena «Numero»-«Letra» y devolviéndola para su uso.

¿Qué función tenéis para compartir que utilicéis desde hace mucho?

Un saludo!

Carlos Dk

Apasionado por la enseñanza y el SEO

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.