Programación General > Visual Basic para principiantes
Combo
Mollense:
Te referís a esto?.......
--- Código: Text --- Combo1.AddItem abre!iva1, 0 Combo1.AddItem abre!iva2, 1 Combo1.AddItem abre!iva3, 2 Combo1.AddItem abre!iva4, 3 Combo1.AddItem abre!iva5, 3 Combo1.ListIndex = 0
Llaneta:
eso es lo que puse yo, pero cuando termino de poner , 0 me sale un mensaje de error diciendome Se esperaba fin de instruccion
Gracias
Llaneta:
Ahora ya no me saca error pero no me muestra nada en el combo
Gracias
Mollense:
:D Como se llama el ComboBox? En el ejemplo que te di se llama Combo1.
Hacé un Paso a Paso y fijate el valor que toman las variables, seguramente no estas extrayendo bien los datos de la DB.
Saludos
mamex:
Mira, para llenar combos, uso el método siguiente: primero creo un recordset con una consulta sobre una base de datos de access, despues mando a llamar a la funcion llenarComboRs() y le mando el recordset creado anteriormente, y después el combo al que le voy a meter los datos. Espero y te sirva.
Para que el código te sirva, deberas agregar la siguiente referencia a tu proyecto:
Microsoft Activex Data Objects 2.5 Library
Las funciones que debes agregar:
--- Código: Text --- 'Crea una consulta y la regresa como un recordsetPublic Function crearConsulta(baseDeDatos As String, sql As String) As Recordset Dim bd As Connection, rs As Recordset Set bd = New Connection Set rs = New Recordset 'Genera la cadena de conexión bd.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ baseDeDatos & ";Persist Security Info=False" 'Abre la base de datos bd.Open 'Se la asigna al recordset rs.Open sql, bd, adOpenKeyset, adLockOptimistic If rs.recordCount > 0 Then _ rs.MoveFirst 'Regresa el recordset Set crearConsulta = rsEnd Function 'Llena un comboBox con un campo de un recordsetPublic Sub LlenarComboRs(rs As Recordset, Campo As Integer, combo As Object) Dim aux As Long 'Limpia el combo combo.Clear 'Si esta situado en un registro If rs.recordCount > 0 Then With rs 'Guarda la posicion en la k esta el recordset aux = .AbsolutePosition 'Se mueve al primero para ir uno por uno hasta el final .MoveFirst While (Not .EOF) 'Agrega el elemento al combo y pasa al siguiente combo.AddItem .Fields(Campo) .MoveNext Wend 'Se regresa al primero, y despues al que estaba cuando se llamó la función .MoveFirst .Move aux - 1 End With End If combo.Text = "Seleccione"End Sub
'Y en el evento gotFocus (aunque yo te recomiendo en el evento dropDown)
'mandas a llamar al recordset, y despues a llenarCombo
--- Código: Text --- Private Sub Combo1_GotFocus() Dim rs As Recordset 'Este es un ejemplo, debes cambiar el nombre de tu BD y tu consulta Set rs = crearConsulta("C:\Consultorio\systech.mdb", "Select nombre from pacientes") 'El segundo parametro (en este caso 0) es el numero del campo del recordset LlenarComboRs rs, 0, Combo1End Sub
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa