Como pasar los valores de un cuadro de lista con selección múltiple a la tabla principal de access

Requiero de su ayuda

Tengo una aplicación de access que estoy construyendo tengo separadas mis tablas de los formularios y los tengo vinculados

En los formularios accedo con usuario y contraseña hasta aquí no hay ningún problema

Cuando accedo al formulario de captura

E ingreso los datos que se registran en la tab_base general requiero que también me registre lo que seleccione del cuadro de lista ya sea que seleccione uno o varios registros

Anexo pantalla

Es decir si selecciono esos 3 registro los almacene en la tab_BaseGeneral,

La estructura de mi tabla es la siguiente

Campo llave cve_sec autonum

campo llave cve_personal (texto corto)                      

                       cve_folio texto, id_suc, sucursal, nom ejecutivo, sku, 

descripcion, regalo_promo, desc_regalo, comentario, foto, cve_sem (texto corto)

                      año /mes/ fecha cap/fecha venta  (fecha /hora)

                       operador, emplaye, cantidad, cajas_utilizadas (numero)

En el campo sku y descripción requiero que se almacenen los datos seleccionados del cuadro de lista con selección múltiple y que los ponga de forma vertical

Es decir si en el folio 1

Se hace la captura de los datos y al seleccionar los elementos del cuadro de lista

En ese registro se visualicen en la tabla de forma vertical y al consultar el registro en el formulario con el botón de anterior o siguiente esos registros permanezcan seleccionados así con cada registro

Adicional a esto en un cuadro independiente regalo_promo2 y descripcionregalo2 de igual forma que se registre en la base en el campo de regalo_promo y desc_regalo

Espero haberme explicado

Saludos y espero contar con su valiosa ayuda

Me urge un poco

1 Respuesta

Respuesta
2

Isaac: Partiendo de la base de que en el detalle no acabo de entender la pregunta, ya que la pregunta me sale sugerida, te comento.

Para recorrer una lista e ir guardando los elementos seleccionados, tienes que hacer algo como ésto.

Private Sub BtnGuardaEnTabla_Click()
Dim QryTabla As String
Dim RstTabla As DAO.Recordset
Dim I As Integer
QryTabla = “SELECT * FROM LaTabla;”
Set RstTabla = CurrentDb.OpenRecordset(QryTabla, dbOpenDynaset)
LBoxLaLista.SetFocus
For I = 0 To LBoxLaLista.ListCount - 1
        If LBoxLaLista.Selected(I) Then 'Si no está el Botón para ir añadiendo de uno en uno
                RstTabla.AddNew
                   RstTabla!Campo1 = LBoxLaLista.Column(0, I)
                   RstTabla!Campo2 = LBoxLaLista.Column(1, I)
               RstTabla!Campo3 = LBoxLaLista.Column(2, I)
                        …………………… etc
                RstTabla.Update
                LBoxLaLista.Selected(I) = False ‘Borra la Selección (I)
        End If
Next I
RstTabla.Close
Set RstTabla = Nothing
QryTabla = “”
End Sub

Los Nombres son inventados. Saludos >> Jacinto

Hola jacinto

Me explico

Lo que requiero es que de lo que seleccione en el cuadro de lista sea 1 o más cantidad de registros seleccionados estos se guarden en mi tabla

jacinto 

en esta parte 

QryTabla = “SELECT * FROM LaTabla;”

es donde extraigo los datos que se visualizan en el cuadro de lista

Si Isaac: Eso es lo que te he contestado. Solo tienes que elegir donde disparar el código.

En el ejemplo que te he puesto, es através de un Botón

Los nombres de la Tabla y el ListBox has de adaptarlos a los tuyos

Y los Campos, ponerle también los tuyos. En mi opinión deberías intentar probarlo, y vivir las dificultades. Un saludo >> Jacinto

Isaac: En esa línea que me pones es donde seleccionas "Todos" los Campos de la Tabla en la que vas a grabar los datos. Creo que en tu caso sería Tab_General. Saludos >> Jacinto

Ok jacinto ya lo adapte y quedo así

Dim QryTabla As String
   Dim RstTab_BaseGeneral As DAO.Recordset
   Dim I As Integer
   QryTabla = "SELECT * FROM Cat_Productos,"
   Set RstTab_BaseGeneral = CurrentDb.OpenRecordset(QryTabla, dbOpenDynaset)
        Productos.SetFocus
        For I = 0 To Productos.ListCount - 1
            If Productos.Selected(I) Then 'Si no está el Botón para ir añadiendo de uno en uno
                  RstTab_BaseGeneral.AddNew
                    RstTab_BaseGeneral!Skus = Productos.Column(0, I)
                    RstTab_BaseGeneral!Descripcion = Productos.Column(1, I)
                   'RstTabla!Campo3 = Productos.Column(2, I)
                  RstTab_BaseGeneral.Update
                    Productos.Selected(I) = False 'Borra la Selección (I)
        End If
Next I
RstTab_BaseGeneral.Close
Set RstTab_BaseGeneral = Nothing
QryTabla = ""

solo que al guardar el registro me marca error en la sintaxis from

En la linea de codigo

Set RstTab_BaseGeneral = CurrentDb.OpenRecordset(QryTabla, dbOpenDynaset)

Isaac: Ignoro si todo se corresponde con tus Nombres, pero al menos tienes un error

QryTabla = "SELECT * FROM Cat_Productos,"

que es >> QryTabla = "SELECT * FROM Cat_Productos;" o simplemente

QryTabla = "SELECT * FROM Cat_Productos"

Mis saludos >> Jacinto

Hola jacinto

Ahora me marca error en esta línea

RstTab_BaseGeneral!Skus = Productos.Column(0, I)

Me dice que que no se encontró el elemento de la colección

Isaac: Has de estar seguro de que SKus es un Campo de la Tabla Cat_Productos.

Si es que te atascas mucho, lo único que te puedo ofrecer es que "si no tienes datos personales y/o confidenciales " en tu Bd, me la envíes a [email protected] e intento ayudarte.

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas