Inserta datos desde un cuadro de lista Access

Tengo este formulario creado como se ve en la imagen

Lo que requiero es que al momento de seleccionar los ítems en el cuadro de texto con un botón

Al dar click en el botón me inserte los datos seleccionados en una tabla llamada ítems

¿Esto se podría hacer?

Mucha gracias por la ayuda .

2 respuestas

Respuesta
1

Asumo que el cuadro de lista tiene un campo ID, es decir, este es el primer campo:

Tengo un cuadro de lista que llamo lstLista y un botón al que llamo miboton y en el evento Al hacer clic programo el evento

Sub miboton_Click()
    Dim varPos As Variant
    If Me.lstLista.ItemsSelected.Count = 0 Then
            MsgBox "Debe seleccionar una o más registros.", vbInformation, "Cuidado"
            Exit Sub
    End If
    For Each varPos In lstLista.ItemsSelected
      CurrentDb.Execute "INSERT INTO items(Referencia,Articulo,Cantidad) VALUES ('" & _
      Me.lstLista.ItemData(varPos) & "'," & "'" & Me.lstLista.Column(1, varPos) & "'," & Me.lstLista.Column(2, varPos) & ")"
    Next varPos
End Sub

Solo debe tener cuidado de encerrar entre apostrofe ' los valores de campos tipo texto.

Tenga cuidado por lo regular los cuadros de lista siempre se recorren con For Each o For. Por esto se configuran para seleccionar uno o varios items. No debe seleccionar y pasar de a uno ¿qué pasa si actualiza y ese no era el registro?

¿Y qué pasa si quiere pasarlos todos? ¿Va a pasar de a uno? Para esto se seleccionan todos recorriendo el cuadro de lista con For Each.

Gracias por la ayuda ,pero tengo una duda  también quiero ingresar el valor que esta en el campo llamado ID , como seria el proceso 

Acá incluyo el ID:

Sub miboton_Click()
    Dim varPos As Variant
    If Me.lstLista.ItemsSelected.Count = 0 Then
            MsgBox "Debe seleccionar una o más registros.", vbInformation, "Cuidado"
            Exit Sub
    End If
    For Each varPos In lstLista.ItemsSelected
      CurrentDb.Execute "INSERT INTO items(ID,Referencia,Articulo,Cantidad) VALUES ('" & _
      Me.lstLista.ItemData(varPos) & "'," & "'" & Me.lstLista.Column(1, varPos) & "'," & _
      Me.lstLista.Column(2, varPos) & "," & Me.lstLista.Column(3, varPos) & ")"
    Next varPos
End Sub
Respuesta
1

En principio no necesitas el botón para nada, ya que pierdes tiempo seleccionado varios items y luego pulsando el botón. Es preferible hacerlo a medida que se seleccionan. Si tengo una tabla Tabla2, con una serie de campos y un formulario con un cuadro de lista Elegir, donde te pongo un subformulario en vista hoja de datos con origen en esa tabla, para que puedas comprobar como se va "rellenando" la tabla.

Cuando pongo el cursor sobre cualquier cliente del cuadro de lista

Me voy al siguiente item y

Ya me lo ha pasado a la tabla Tabla2. y a otro

El código del cuadro de lista es

Private Sub Elegir_AfterUpdate()
DoCmd.RunSQL "insert into tabla2(cliente,ciudad,pais)values('" & Me.Elegir.Column(0) & "','" & Me.Elegir.Column(1) & "','" & Me.Elegir.Column(2) & "')"
Me.Tabla2.Form.Requery
End Sub

Luego, puedo escribir en Faltante lo que quiera( que por cierto no repite valores)

y mira la tabla

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas