Consulta por medio de Combobox

Quisiera hacerte una consulta estoy haciendo un programa el cual esta enlazado a una base de datos MySql, y necesito hacer la consulta de registros por medio de un combox, ya en el combo me muestra el campo del cualquiera hacer la consulta para que al momento de darle click me muestre todos los demás datos de ese registro en mis textbox.

1 Respuesta

Respuesta
1
No entiendo muy bien pero creoq ue lo que ue quieres es que al hacer clic sobre un item del combo box te llene los datos del registro seleccionado.
Si es eso, en el evento click del combobox (VB6) ubicas cual fue el registro que seleccionaron con Combobox. SelectedItem con este código vas y buscas en la base de datos y mustreas los datos en los controles que necesitas.
Que tal si creo que no me supe explicar bien pero si esa es la idea aquí tengo este código pero me marca un error ojala me puedas ayudar
Set RecSQL = New ADODB.Recordset
RecSQL.CursorLocation = adUseClient
RecSQL.Open "SELECT * FROM pacientes", BD, adOpenStatic, adLockOptimistic
' asignamos a los TextBox el valor de cada campo (en la tabla tienen que estar en el
' mismo orden, es decir el primer campo (0) será fecha, el segundo nombre, etc..)
Dim i As Integer
For i = 0 To 18
Set Text1(i).DataSource = RecSQL
Text1(i).DataField = RecSQL(i).Name
Next i
' agregamos al combo todos los apellidos (que es el campo 2) y su posición en
' el recordset
With RecSQL
.MoveFirst
Do Until .EOF
Combo1.AddItem .Fields(3)
Combo1.ItemData(Combo1.NewIndex) = .AbsolutePosition
.MoveNext
Loop
End With
Y en esta linea me marca error
Text1(i).DataField = RecSQL(i).Name
Me dice "Run-time 545
Unable to bind to field or DataMember:"id"
y bueno le agrego a esa instrucción el id para que quede de esta manera:
Text1(i).DataField = RecSQL(i).Name = "id"
y Me marca el error
Unable to bind to field or DataMember:'True'
De antemano gracias por tu ayuda y tus respuestas
En primer lugar el Set text(i).datasource = recsql, esta mal eso no lo hagas no es buena practica.
Simplemente has: Text1(i).Text= RecSql(i).Item("Id")
Y así para cada uno de los campos que necesites.
Que tal gracias por la respuesta mira hice la corrección que me dice y me marca error de datameber que no es un función valida mi código es el siguiente:
Set RecSQL = New ADODB.Recordset
RecSQL.CursorLocation = adUseClient
RecSQL.Open "SELECT * FROM pacientes", BD, adOpenStatic, adLockOptimistic
' asignamos a los TextBox el valor de cada campo (en la tabla tienen que estar en el
' mismo orden, es decir el primer campo (0) será fecha, el segundo nombre, etc..)
Dim i As Integer
For i = 0 To 18
Set Text1(i).Text= RecSql(i).Item("Id") 
Next i
' agregamos al combo todos los apellidos (que es el campo 2) y su posición en
' el recordset
With RecSQL
.MoveFirst
Do Until .EOF
Combo1.AddItem .Fields(3)
Combo1.ItemData(Combo1.NewIndex) = .AbsolutePosition
.MoveNext
Loop
End With
La verdad no se si este bien mi código o tenga que escribirlo de otra manera, gracias por la ayuda
Saludos
¿El for que haces de 0 a 18 es para los campos o es para los registros? Porque lo que estas es variando en numero de registro y siempre estas llenando el campo ID en los controles textbox. ¿Esto es lo que quieres hacer?
En cunato al error no tengo la menr idea de en donde se te puede generar, ni siquiera me estas indicando en que linea te aparece el error como para poder tener una idea de lo que esta sucediendo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas