none
Cuadro combinado siempre desplegado RRS feed

  • Pregunta

  • Hola:

    Me gustaría saber si hay alguna forma de tener un cuadro combinado siempre desplegado en Access 2003. La idea es que sea igual que el cuadro de lista, pero con las ventajas del cuadro combinado.

    Por otro lado, hay alguna forma de seleccionar una fila del cuadro de lista (cuando es una lista de valores) por alguno de sus valores an alguna de sus columnas?

    Lo digo porque tengo un cuadro de lista (de tipo Value List) con valores, por ejemplo Id y Nombre y quiero por codigo preseleccionar una fila, por ejemplo la que tenga Id = 5, la cual no tiene porque coincidir con el index de la lista.

    miércoles, 23 de junio de 2010 11:23

Todas las respuestas

  • Hola
    No le veo mucho sentido a lo que quieres hacer. Sí quieres desplegar el combo, para eso usa un listbox. De todos modos, mira el método DropDown del control Combobox.
    Respecto a la segunda pregunta, simplemente asigna el valor de la columna dependiente a tu control

    me.MiCombo=5

    Salu2,


    José Mª Fueyo [MS MVP Access]
    miércoles, 23 de junio de 2010 12:15
  • Hola:

    En principio me es indiferente usar un combobox o un listbox, la cuestion es que esté siempre desplegado y que al asignarle un valor este quede seleccionado.

    El combobox, al asignarle el valor, si está en él se selecciona esa fila, pero no me permite tenerlo siempre desplegado (solo se puede hacer cuando tenga el enfoque)

    El listbox ocurre lo contrario: está desplegado pero no se puede seleccionar una fila a menos que se sepa la posicion (index) de esa fila, lo cual en principio no se sabe.

    La segunda pregunta que te hacía, Jose, era para un listbox, no para un combobox, de ahi la dificultad.

    miércoles, 23 de junio de 2010 14:59
  • Hola
    No se sí te he entendido bien. A ver con éste ejemplo.
    Un mdb con la tabla de clientes de Northwind. Crea un formulario, y en el introduce un combobox que tenga como origen de datos los campos IdCliente y NombreCompañía de esta tabla. Llamémos a este combo, "cbxClientes". Mantén el campo IdCliente oculto.
    Crea un listbox con igual origen de datos (IdCliente y NombreCompañía). Llamémos a éste listbox, "lstClientes".
    Crea un botón con nombre "cmbSeleccionarLst", y en su evento click, pon éste código:

    Private Sub cmbSeleccionarLst_Click()
      If Me.cbxClientes <> "" Then
        Me.lstClientes = Me.cbxClientes
      End If
    End Sub
    

    ¿Es esto lo que quieres hacer?

    Salu2,


    José Mª Fueyo [MS MVP Access]
    miércoles, 23 de junio de 2010 15:39
  • Podría ser algo asi.

    Al final lo que he echo es guardar los datos en una coleccion, asignando como index de los elementos de la coleccion el índice de la fila en la que se encuentra ese dato dentro de un listbox.

    Después, busco el elemento que me interesa en la coleccion con un for each, leo el índice que tiene y selecciono la fila en el listbox con me.listbox.Selected(fila) = true, tratando los casos en los que no haya datos, para no obtener errorres.

     

    viernes, 25 de junio de 2010 12:50