Calcula la letra del Nif en Visual Basic
Visual Basic 1 Comentario »
Aquí os dejo el código de una aplicación muy simple pero efectiva que poniendo los números del NIF os calcula la letra.
La aplicación tiene la particularidad de permanecer siempre visible en la esquina inferior derecha y ocupar poco espacio, de esta manera es posible tenerla a mano mientras se trabaja con otras aplicaciones y no nos quita visión.
A continuación voy a dejar el código pero si alguien está interesado en la aplicación completa no tiene mas que decirlo y subo una instalación para que la descarguéis.
El programa se compone de un módulo con el siguiente código:
-
Public Declare Function SetWindowPos Lib "user32" _
-
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
-
ByVal x As Long, ByVal y As Long, _
-
ByVal cx As Long, ByVal cy As Long, _
-
ByVal wFlags As Long) As Long
-
Public Const HWND_TOPMOST = -1
Y un formulario con el siguiente código:
-
Private Sub CalculaNIF(strA 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 Sub
-
-
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#)
-
strA = Trim$(strT) + Mid$(cCADENA, c# + 1, 1)
-
Text2.Text = Mid$(cCADENA, c# + 1, 1)
-
End Sub
-
-
Private Sub Command1_Click()
-
Call CalculaNIF(Text1.Text)
-
End Sub
-
-
Private Sub Form_Activate()
-
Text1.SetFocus
-
End Sub
-
-
Private Sub Form_Load()
-
Me.ScaleMode = vbPixels
-
SetWindowPos Me.hwnd, HWND_TOPMOST, Me.ScaleLeft, _
-
Me.ScaleTop, Me.ScaleWidth, Me.ScaleHeight, 0
-
Move (Screen.Width - Width), (Screen.Height - Height) - 500
-
-
End Sub
-
-
Private Sub Text1_GotFocus()
-
Text1.SelStart = 0
-
Text1.SelLength = Len(Text1.Text)
-
End Sub
-
-
Private Sub Text1_KeyPress(KeyAscii As Integer)
-
'MsgBox KeyAscii
-
Select Case KeyAscii
-
Case 13
-
Command1_Click
-
Text1_GotFocus
-
Exit Sub
-
Case 8
-
Case 46
-
Case Else
-
If Not IsNumeric(Chr(KeyAscii)) Then
-
KeyAscii = 0
-
End If
-
End Select
-
End Sub
También podéis descargar desde aquí los ficheros fuente.
Antes de la aparición del registro de 32 bits de Windows (Windows 95), si se deseaba guardar todo tipo de parámetros de la aplicación, tales como el tamaño de la ventana inicial, se utilizaban los archivos INI. La mayoría de las aplicaciones almacenan esta información en el registro de Windows ahora, sin embargo, puede resultarte más fácil utilizar archivos INI por ahora.
Esta función te permite comprobar la contraseña de un usuario contra una base de datos sin necesidad de conocerla. El proceso inverso no es posible.
En algunas ocasiones nos es útil capturar el usuario del equipo que maneja nuestra aplicación para dejar constancia de quien ha sido el usuario que ha creado o modificado un registro. El siguiente codigo nos ayuda a ello. Nos permite capturar el usuario con el que se ha iniciado la sesión en un pc con Windows, si se trabaja en un entorno con dominio nos devolverá el usuario que ha iniciado la sesión en el dominio.

Comentarios Recientes