Como puedo obtener datos en un TextBox de una base de datos al seleccionar un codigo de un ListBox, son varios TextBox.

Deseo obtener datos de una base de datos y que se reflejen en un TextBox, esto al seleccionar un codigo de un ListBox, son varios TextBox los que requiero. Es un formulario de consulta, que codigo debo utilizar, soy nuevo en esto de la programación, ¿quién me puede ayudar?

2 Respuestas

Respuesta
1

Te podría enviar un código de ejemplo... pero si eres nuevo en esto de la programación, ¿Podrás adaptarlo a tu libro?

Tampoco me quedó muy claro si al seleccionar un código de un listbox debe volcar los campos del resto de sus columnas a los textbox o debe buscarlos en una hoja y según el dato encontrado mostrarlos en los controles de texto.

Si fuese este último caso también deja imagen del encabezado de la hoja para aproximarte lo más que sea posible una macro para tu consulta.

Buenas Tardes.

Es precisamente lo que requiero, que al seleccionar un código de un listbox debe buscarlos en una hoja y según el dato encontrado mostrarlos en los TextBox.

Esta es mi tabla, y la búsqueda se debe realizar con la columna codigo, osea, al tener el codigo en el ListBox, me rellene los TextBox de acuerdo a las columnas, asi tengo mi UserForm:

Agradezco en lo que me puedas colaborar, Saludo.

Oh, qué pena que ya hayas valorado (pobremente) ... seguramente ahora, con tus aclaraciones, recibirás la respuesta exacta. Espero que luego la mejores. Hoy tengo un día ocupado, esta tarde veré de armarte una macro para tu consulta.

Sdos!

Esta es la macro para el botón de CONSULTAR aunque bien podría haber sido en el evento Change del Combobox (lo que se ve en la imagen es un ComboBox, no un ListBox).

Debes ajustar todos los nombres de los controles de la macro por los tuyos.

Private Sub CommandButton4_Click()      'botón Consultar
'si está vacío no realiza la búsqueda
If ComboBox1 = "" Then Exit Sub
Set hov = Sheets("VADEMECUM")
Set busco = hov.Range("A:A").Find(ComboBox1, LookIn:=xlValues, lookat:=xlWhole)
'si encuentra el dato rellena los textbox
If Not busco Is Nothing Then
    TextBox1 = hov.Range("B" & busco.Row)    'control Descripción
    TextBox2 = hov.Range("C" & busco.Row)    'control PBs
    'el resto de los controles
Else
    'limpiar los controles ... optativo
End If
End Sub

PD) Te recomiendo especialmente los videos 29, 11, 6 de mi canal.

Sdos!

Se agradece que también valores esta respuesta, atento a que dediqué tiempo a desarrollarte la macro y explicar los detalles. Y así queda cerrada en el historial.

Sdos!

Respuesta
1

Como ejemplo te dejo esto:

Private Sub ComboBox1_Change()
Set h = Sheets("VADEMECUM")
Set b = h.Columns("A").Find(ComboBox1.Value, LookAt:=xlWhole)
        If Not b Is Nothing Then
        TextBox1.Value = h.Cells(b.Row, "B")
        TextBox2.Value = h.Cells(b.Row, "C")
        TextBox3.Value = h.Cells(b.Row, "D")
        TextBox4.Value = h.Cells(b.Row, "E")
        TextBox5.Value = h.Cells(b.Row, "F")
        TextBox6.Value = h.Cells(b.Row, "G")
        End If
End Sub

Adaptalo a tus necesidades.

¡Gracias! 

De muchisima ayuda tu información, todo salio como se buscaba.

Que bueno que te sirvió.
La respuesta de Elsa está mas completa.
Un "Else" Nunca esta de más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas