Programación General > Visual Basic para principiantes

 Combo

<< < (2/3) > >>

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 = &#34;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&#34; & _        baseDeDatos & &#34;;Persist Security Info=False&#34;    'Abre la base de datos    bd.Open    'Se la asigna al recordset    rs.Open sql, bd, adOpenKeyset, adLockOptimistic    If rs.recordCount &#62; 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 &#62; 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 = &#34;Seleccione&#34;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(&#34;C:&#092;Consultorio&#092;systech.mdb&#34;, &#34;Select nombre from pacientes&#34;)    'El segundo parametro (en este caso 0) es el numero del campo del recordset    LlenarComboRs rs, 0, Combo1End Sub  

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa