Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/05/2008, 00:37
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 3 meses
Puntos: 37
Re: cargar combobox

Hola,

El segundo (o más) campo lo tienes que cargar en la propiedad Column(NumCol, NumFila), ten en cuenta que el primer índice de columna es 0 (cero).

Te pongo cómo haría yo esa función:

Código:
Function carga_combo_moneda()
Set tabla_moneda = Nothing  ' <-- instrucción innecesaria ya que a continuación creas un nuevo recordset
Set tabla_moneda = New ADODB.Recordset
tabla_moneda.Open "SELECT * FROM Moneda ORDER BY id", conexionbase, adOpenDynamic, adLockOptimistic

If tabla_moneda.RecordCount = 0 Then
    MsgBox "no existen registros", vbExclamation, "Mensaje"
    Exit Function
End If
Dim i As Long
With CmbBox
    ''''' Las siguientes propiedades las puedes poner en diseño
    .ColumnCount = 2            ' número de columnas a mostrar
    .ListRows = 15              ' número de items visibles al desplegar
    .ColumnWidths = "30pt;50pt" ' ancho de las columnas en puntos
    .TextColumn = 2             ' valor de la columna al seleccionar
    .Value = "Selecciona moneda..."    ' texto del combo
    '''''   
    tabla_moneda.MoveFirst    ' <-- instrucción innecesaria, ya que al abrir un nuevo recordset siempre se posiciona en el primer registro
    While Not tabla_moneda.EOF
        .AddItem tabla_moneda!simbolo         ' Primera columna
        .Column(1, i) = tabla_moneda!nombre   ' Segunda columna
        tabla_moneda.MoveNext
        i = i + 1
    Wend
End With
End Function
y en el evento Click del ComboBox:

Código:
Private Sub CmbBox_Click()
' la propiedad Value muestra la primera columna y Text la indicada en la propiedad TextColumn
MsgBox CmbBox.Value & " - " & CmbBox.Text
End Sub
Un saludo.