¿Cómo puedo implementar una función de búsqueda similar a la de excel en una base de datos?

Hola valedor, nuevamente molestando tu atención pues tus respuestas siempre han sido precisas y efectivas. Tengo un nuevo reto, tal vez fácil pero no lo logro realizar. Tengo una base de datos con códigos y nombres de productos (en la Hoja2, Códigos en la columna "B" y Nombres en la columna "C"). Estoy tratando de hacer algo similar a la Búsqueda del Excel, colocar una palabra o parte de ella para encontrar esa cadena. En la hoja1 He creado con el UserForm una pantalla para buscar determinada cadena respecto al nombre del producto ( que están en la columna C de la Hoja2 ) para trasladarlo a una celda específica de la hoja1, y no logro crear los códigos visual correctos para su ubicación. La cadena a buscar se escribe en el TextBox: "txtCadena", al usar el botón Buscar quiero ver el código y nombre encontrado en el mismo User Form en los TextBox: "txtCodigo" y "txtDescripcion" respectivamente, para ver si es lo que busco o reiniciar nueva búsqueda de ahí en adelante. ¿Cómo debo hacer? He tratado con la función Find, pero la verdad no la entiendo. Gracias por tu tiempo y que Dios los bendiga a ti y a tu family.

1 Respuesta

Respuesta
1
El código de tu botón Buscar tiene que ser parecido a esto...
Private Sub cmdBuscar_Click()
Dim strBuscado As String
Dim Encontrado As Range
'Solicitamos un valor a buscar
strBuscado = Trim(txtCadena.Text)
'Verificamos que no este vacio
If strBuscado <> "" Then
'Buscamos el valor
Set Encontrado = Sheets("Hoja2").Range("C:C").Find(strBuscado)
If Not Encontrado Is Nothing Then
'Si lo encontro muestra los datos en las cajas
txtCodigo.Text = Encontrado.Offset(0, -1).Value
txtDescripcion.Text = Encontrado.Offset(0, -2).Value
Else
'Notifica que no encontro nada
MsgBox "Valor no encontrado"
End If
'Liberamos la memoria
Set Encontrado = Nothing
Else
'Notifica que no se proporciono dato a buscar
MsgBox "No hay nada que buscar"
End If
End Sub
Este código SIEMPRE te mostrara el mismo código, en caso de que lo encuentre, para que sigas buscando, si es que el código se repite, tienes que modificar esta linea
Set Encontrado = Sheets("Hoja2").Range("C:C").Find(strBuscado)
Tienes que agregarle el segundo argumento al método Find que le dice desde donde EMPEZAR a buscar, claro, eso viene muy claro en la ayuda y esa es tu tarea, mira que es poquita...
Buena valedor acepto el reto, espero entenderlo bien, sino te molestaré nuevamente. Espero no abusar de tu gentileza. Ah! Por cierto, estoy preparando otra pregunta, nuevamente muchas gracias.

Añade tu respuesta

Haz clic para o