Como filtrar ingreso de datos con una base de datos?
Tengo un aplicativo con el cual ingreso el nombre del autor de unos libros a través de dos TextBox, uno para ingresar el Nombre y otro para ingresar el Apellido. El asunto es que a medida que se ingresen los caracteres del Apellido se debe comparar con datos almacenados en una hoja de cálculo llamada CUTTER que está compuesta por 21 columnas de una por cada letra del alfabeto. Si por ejemplo se ingresa el Apellido Alvarez el buscador debe buscar por la columna A, el renglón 473Alvare que es el que más coincide con el ingreso. Y debe guardar en la base de datos la Cota (A473) que se compone de la primera letra junto con el número adjunto. Pero el aplicativo que realice solamente busca en la primera columna y no en el resto. Adjunto el código del aplicativo. Ayúdenme. Gracias...
Private Sub UserForm_Initialize()
'Cambiamos el color del Userfom
Me.BackColor = RGB(50, 50, 70)
Dim pai As Range
Dim iss As Range
Set pai = Range("PAIS")
For Each iss In pai
CBoxPais.AddItem iss.Value
Next iss
End Sub
Private Sub Apellido_Change()
On Error GoTo ERR:
'Color azul al entrar al campo
Me.Apellido.BackColor = &HFFFFC0
'Contador de lineas
NumDatos = Hoja2.Range("A" & Rows.Count).End(xlUp).Row
'Detiene el contador de lineas
Hoja2.AutoFilterMode = False
For nFila = 2 To NumDatos
NomAutor = Hoja2.Cells(nFila, 1).Value
If UCase(NomAutor) Like "*" & UCase(Me.Apellido.Value) & "*" Then
nom = Mid(NomAutor, 1, 3)
num = Mid(NomAutor, 4, 1)
Cota = num & nom
End If
Next
ERR:
End Sub
Private Sub Apellido_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Cambio a mayúsculas
If (KeyAscii >= 97 And KeyAscii <= 122) Or (KeyAscii = 233) Or (KeyAscii = 237) Or (KeyAscii = 241) Or (KeyAscii = 243) Or (KeyAscii = 250) Then
KeyAscii = VBA.Asc(VBA.UCase(VBA.Chr(KeyAscii)))
End If
If (KeyAscii >= 48) And (KeyAscii <= 57) Then
MsgBox "Solo letras"
KeyAscii = 8
End If
End Sub
Private Sub Aceptar_Click()
Sheets("BDATOS").Select
NR = Application.WorksheetFunction.CountA(Range("A:A"))
If Nombre = "" Then
MsgBox "INGRESE NOMBRE"
Nombre.SetFocus
Exit Sub
End If
If Apellido = "" Then
MsgBox "INGRESE APELLIDO"
Apellido.SetFocus
Exit Sub
If CBoxPais = "" Then
MsgBox "SELECCIONE UN PAIS"
CBoxPais.SetFocus
Exit Sub
End If
End If
Cells(NR + 1, 1) = Nombre
Cells(NR + 1, 2) = Apellido
Cells(NR + 1, 3) = CBoxPais
Cells(NR + 1, 4) = Cota
Nombre = ""
Apellido = ""
CBoxPais = ""
Cota = ""
Nombre.SetFocus
End Sub
Private Sub Nombre_Change()
'Color azul al entrar al campo
Me.Nombre.BackColor = &HFFFFC0
End Sub
Private Sub Nombre_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Cambio a mayúsculas
If (KeyAscii >= 97 And KeyAscii <= 122) Or (KeyAscii = 233) Or (KeyAscii = 237) Or (KeyAscii = 241) Or (KeyAscii = 243) Or (KeyAscii = 250) Then
KeyAscii = VBA.Asc(VBA.UCase(VBA.Chr(KeyAscii)))
End If
If (KeyAscii >= 48) And (KeyAscii <= 57) Then
MsgBox "Solo letras"
KeyAscii = 8
End If
End Sub