Seleccionar combobox y cargar textbox

Quisiera saber como lo puedo hacer para que, al seleccionar
una opción de un combobox, en un textbox me aparezca automáticamente un
resultado, explico más detallado, tengo un programa, que esta conectado
a una base de datos, en la cual tengo un combobox que esta conectada a
mi base de datos, y de ahí reúne ciertos datos, lo que quiero es que
ej: al seleccionar "nombre" me aparezca automáticamente en un textbox
su apellido, y en un segundo textbox su edad (obviamente estos campos
existen en la bd)
Copiare mi código de conexión para que me den sugerencias
Option Explicit
Private Cnn As Connection
Private WithEvents Rst As ADODB.Recordset
Private Sub Form_Load()
Const sPathBase As String = "C:\mi_Carpeta\db.mdb"
Set Cnn = New ADODB.Connection
Set Rst = New ADODB.Recordset
With Cnn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" & "Data Source=" & sPathBase & ";"
.Open
End With
Rst.Open "SELECT * FROM datos", Cnn, adOpenDynamic, adLockOptimistic
Do Until Rst.EOF
cmbDatos.AddItem Rst.Fields("nombre")
Rst.MoveNext
Loop
End Sub

1 Respuesta

Respuesta
1
Primero una consulta ¿Tu tabla datos cuanta con un campo identificador? Es decir ¿Cuenta con un campo autonumérico o simplemente numérico pero que nunca se pueda repetir? Ya que esa es la mejor forma de crear una tabla para este tipo de cosas ya que al llenar el combobox debemos hacer lo siguiente (Tomare parte de tu código y le agregare un detalle para que veas que debes hacer) (El campo que voy a llamar va a ser de ejemplo de un campo identificador o numérico):
Acá es donde te encuentras llenando el combo:
Rst. Open "SELECT * FROM datos", Cnn, adOpenDynamic, adLockOptimistic
Do Until Rst.EOF
cmbDatos.AddItem Rst.Fields("nombre").Value
cmbDatos.ItemData(cmbDatos.NewIndex) = Rst.Fields("ID_Nombre").Value ' Esta parte estara guardando en el combo el numero identificador de cada uno de los nombres que se estan guardando en el mismo pero la diferencia es que estos numeros no se veran solo se vera el nombre
Rst.MoveNext
Loop
Lo que tu quieres hacer se debe realizar si o si con algo que identifique a la persona correcta ya que esta muy claro que muchas personas pueden tener el mismo nombre (por eso la importancia de los identificadores).
Ahora te mostrare como puedes hacer para mostrar los datos que quieres en los textbox:
Rst.Open "SELECT * FROM datos WHERE ID_Nombre =" & CLng(cmbDatos.ItemData(cmbDatos.ListIndex)), Cnn, adOpenDynamic, adLockOptimistic
Text1.Text = Rst.Fields("Apellido").value
Text2.Text = Rst.Fields("Edad").value
Eso es más o menos lo que debes hacer claro que con los nombres de campos que le diste a tu tabla los campos que te presente en este ejemplo los invente para poder ayudarte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas