Adicionar valores de texto de un formulario a un cuadro de lista

Les escribo pidiéndoles el favor de que si me pueden indicar por que el siguiente código que tengo en un botón, no me sirve para adicionar los valores de los textos (Descripción, UDS, Precioventa) que tengo en un formulario a un cuadro de lista que tengo dentro del mismo subformulario, tomo como base:

Dim i As Integer
For i = 1 To 100       ' en donde lñimito la insercion de numero de filas
Me.Lista54.Column(1, i) = Me.Descripcion.Value      ' que le asigne a la columna 1 de la lista con nombre Lista54 el valor de l,o que tengo en el texto llamado "Descripcion" 
Me.Lista54.Column(2, i) = Me.UDS.Value
Me.Lista54.Column(3, i) = Me.Precioventa.Value
Next i

1 Respuesta

Respuesta
1

Primero hay que poner el método AddItem

    Dim i As Integer
    For i = 0 To 100       ' en donde lñimito la insercion de numero de filas
        Me.Lista54.AddItem
        Me.Lista54.Column(0, i) = Me.Descripcion.Value       ' que le asigne a la columna 1 de la lista con nombre Lista54 el valor de l,o que tengo en el texto llamado "Descripcion"
        Me.Lista54.Column(1, i) = Me.UDS.Value
        Me.Lista54.Column(2, i) = Me.Precioventa.Value
    Next i

Te explico algunos detalles.

Tanto la columna inicial como la fila inicial de un listbox, empiezan en el contador cero. Es por eso que puse Column(0, i); también estoy iniciando el For con i = 0

De esa forma funciona para insertar registros en un Listbox.


Lo que va a hacer ese código es insertar 101 veces los mismos datos: descripción, uds y precio; no entiendo para qué quieres insertar 100 veces los mismos datos en el listbox.

Pero en la forma que te estoy poniendo, el código funciona.


Si solamente quieres insertar un registro en el list, cada vez que presiones un botón:

Private Sub CommandButton1_Click()
    Dim i As Integer
    Me.Lista54.AddItem
    i = Lista54.ListCount - 1
    Me.Lista54.Column(0, i) = Me.Descripcion.Value       ' que le asigne a la columna 1 de la lista con nombre Lista54 el valor de l,o que tengo en el texto llamado "Descripcion"
    Me.Lista54.Column(1, i) = Me.UDS.Value
    Me.Lista54.Column(2, i) = Me.Precioventa.Value
End Sub

Hola muchas gracias, el inconveniente es que en Me.Lista54.AddItem, me dice el interprete que el argumento no es opcional y a pesar de que le puse o siguiente:

 Me.Lista54.AddItem(0, i) = Me.Descripcion.Value

E interprete me dice que faltaba Function o una variable.

¿No se que pasara sera problema de librerías?

Saludos!.

Esto no es así:

Me.Lista54.AddItem(0, i) = Me.Descripcion.Value

Debe ser así:

Me. Lista54. AddItem Me. Descripcion.Value

Prueba mi código. Si le haces cambios a mi código, puede que no te funcione.

Puede ser así:

Private Sub CommandButton1_Click()
    Dim i As Integer
    Me.Lista54.AddItem
    i = Lista54.ListCount - 1
    Me.Lista54.Column(0, i) = Me.Descripcion.Value       ' que le asigne a la columna 1 de la lista con nombre Lista54 el valor de l,o que tengo en el texto llamado "Descripcion"
    Me.Lista54.Column(1, i) = Me.UDS.Value
    Me.Lista54.Column(2, i) = Me.Precioventa.Value
End Sub

O puede ser así:

Private Sub CommandButton1_Click()
    Me.Lista54.AddItem Me.Descripcion.Value
    Me.Lista54.Column(1, Lista54.ListCount - 1) = Me.UDS.Value
    Me.Lista54.Column(2, Lista54.ListCount - 1) = Me.Precioventa.Value
End Sub

Si tienes problemas de cómo hacerlo, mejor explícame qué quieres hacer y te creo el código nuevo.

Hola

Primero que todo al oprimir el botón con el código que usted me facilito, Access me dice que para poder utilizar ese método, la propiedad tipo de origen de la fila debe de establecerse en 'Lista de valores', cosa que ya hice,

Al oprijmir el botón y correr paso a paso el código, me aparece cuando el compilador recorre la línea de código:

  Me.Lista54.Column(1, Lista54.ListCount - 1) = Me.UDS.Value

Un mensaje que dice:

Como si el compilador no reconociese la propiedad Lista54.ListCount - 1 del objeto Lista54

No entiendo por que sucede esto.

El código que te envié es para VBA de Excel, la sintaxis para VB de Access es diferente.

No tengo Access para hacer pruebas, tendrás que esperar la ayuda de otro expderto, con el código y la sintaxis correcta para Access, o bien, crea una nueva pregunta pero debes aclarar que el código lo requieres para access.

Si lo utilizas en VBA Excel, no tendrás problemas.

¡Gracias!, Gracias Dante pues el archivo original esta en Excel ed incluye un Listbox es que lo necesitaba para Access pues en Excel como es el archivo original si me sirve, el problema era ese pasarlo a un listbox en Access, Éxitos y Gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas