Yo te voy a decir como hacer lo del nif.
Crea un cuadro de texto (o usalo si ya lo tienes) con el nombre nif, y otro con l nombre letra. (en uno escribiran los numeros y en otro la letra).
Crea un nuevo modulo y le pones:
Function LetraNif(strA As String) As String
Dim cCADENA As String
Dim cNUMEROS As String
Dim strT As String, strB As String
Dim a#, nif#, b#, c#
Dim i As Integer
LetraNif = ""
cNUMEROS = "0123456789"
cCADENA = "TRWAGMYFPDXBNJZSQVHLCKE"
strT = Trim$(strA)
If Len(strT) = 0 Then Exit Function
strB = ""
For i = 1 To Len(strA)
If InStr(1, 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#)
LetraNif = Mid$(cCADENA, c# + 1, 1)
End Function
Guarda el modulo con el nombre que quieras. Crea un botón en el form donde tienes los dos campos y en el evento al hacer click le pones:
Call LetraNif(nif)
If (LetraNif(nif) = Me.letra) Then
MsgBox ("correcto")
Else
MsgBox ("incorrecto")
End If
Y Ya está. Yo he hecho que te salga un mensaje que te diga si es correcto o no, tu le puedes poner la acción que quieres que haga en los dos casos.
Suerte!!!