** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Copiar campos de una tabla a otra
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCopiar campos de una tabla a otra

 Responder Responder
Autor
Mensaje
minero1 Ver desplegable
Nuevo
Nuevo


Unido: 12/Enero/2022
Localización: Portugalete
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Tema: Copiar campos de una tabla a otra
    Enviado: 12/Enero/2022 a las 10:44
Buenos días. Necesito ayuda sobre un tema que, a priori, parece sencillo pero que me está costando muchísimo solucionar. Desde una tabla en la que se van añadiendo los productos de los que se solicita oferta, necesito que, cuando se acepta dicha oferta, ciertos campos de esta tabla pasen a otra tabla distinta creando un registro nuevo. Entiendo que se debe realizar con una consulta de datos anexados pero al ejecutarla me intenta añadir muchos más registros de los solicitados. Llamo a la consulta con un botón desde un formulario.
Lo que ocurre es que los resultados no se filtran mediante el identificador que es el campo que relaciona las dos tablas, no sé cómo hacer que sólo muestre los registros en los que el id coincide con el que se muestra en el formulario en el que está el botón.
SQL de la consulta "pasoapedido":
INSERT INTO Material ( Cert_Calidad, Descripción, cantidad, Precio, Cdgo_Prove, Nº_Orden )
SELECT LineasConsultas.Idlinea, LineasConsultas.descripcion_producto, LineasConsultas.cantidad, LineasConsultas.precio_unitario, consultas.idproveedor, consultas.orden
FROM Material INNER JOIN (consultas INNER JOIN LineasConsultas ON consultas.Idconsulta = LineasConsultas.Idconsulta) ON Material.Nº_Orden = consultas.orden
WHERE (((LineasConsultas.Idlinea)=[Formularios]![LineasConsultas]![Idlinea]));

Código del botón:
Private Sub Comando17_Click()
DoCmd.OpenQuery "pasoapedido"
End Sub

Pienso que están incompletos o mal hechos, algo me falta por poner o corregir.
Arriba
lunasoft Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Noviembre/2014
Localización: Graz
Estado: Sin conexión
Puntos: 100
Enlace directo a este mensaje Enviado: 12/Enero/2022 a las 10:50
Usa CURRENTDB.Execute en vez del DoCmd. a ver que sucede

Editado por lunasoft - 12/Enero/2022 a las 10:52
Juanjo Luna (Lunasoft)
Microsoft MVP 2023

----------------

https://www.luna-soft.es/

https://www.youtube.com/ACCESSoTOTAL

https://github.com/ACCESSoTOTAL
Arriba
lunasoft Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Noviembre/2014
Localización: Graz
Estado: Sin conexión
Puntos: 100
Enlace directo a este mensaje Enviado: 12/Enero/2022 a las 10:53
la consulta abierta desde el editor de consultas funciona correctamente?
Juanjo Luna (Lunasoft)
Microsoft MVP 2023

----------------

https://www.luna-soft.es/

https://www.youtube.com/ACCESSoTOTAL

https://github.com/ACCESSoTOTAL
Arriba
minero1 Ver desplegable
Nuevo
Nuevo


Unido: 12/Enero/2022
Localización: Portugalete
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 12/Enero/2022 a las 10:55
Gracias por tu respuesta.
He probado lo que me dices y, sin las comillas, me aparece un error 2496, La acción o método requiere un argumento Nombre de la consulta.
Con las comillas sí se ejecuta la consulta pero con el resultado erróneo que expliqué al comienzo
Arriba
minero1 Ver desplegable
Nuevo
Nuevo


Unido: 12/Enero/2022
Localización: Portugalete
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 12/Enero/2022 a las 11:11
Pienso que el primer error se encuentra en la propia consulta de datos anexados, no da error al ejecutarla pero al llamarla para que "filtre" los resultados por el campo Idlinea indicado no lo "filtra"
Arriba
lunasoft Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Noviembre/2014
Localización: Graz
Estado: Sin conexión
Puntos: 100
Enlace directo a este mensaje Enviado: 12/Enero/2022 a las 12:39
El problema está en el [Formularios]![LineasConsultas]![Idlinea]

Si el botón está en el formulario LineasConsultas prueba con la opción 1 y si no la opcion 2


OPCION 1
Private Sub Comando17_Click()

Dim miSql As String

miSql = "INSERT INTO Material ( Cert_Calidad, Descripción, cantidad, Precio, Cdgo_Prove, Nº_Orden )
SELECT LineasConsultas.Idlinea, LineasConsultas.descripcion_producto, LineasConsultas.cantidad, LineasConsultas.precio_unitario, consultas.idproveedor, consultas.orden
FROM Material INNER JOIN (consultas INNER JOIN LineasConsultas ON consultas.Idconsulta = LineasConsultas.Idconsulta) ON Material.Nº_Orden = consultas.orden
WHERE (((LineasConsultas.Idlinea)=" & me.Idlinea & "))"

DoCmd.OpenQuery miSql

End Sub

OPCION 2
Private Sub Comando17_Click()

Dim miSql As String
Dim idActual

idActual = [Formularios]![LineasConsultas]![Idlinea]

miSql = "INSERT INTO Material ( Cert_Calidad, Descripción, cantidad, Precio, Cdgo_Prove, Nº_Orden )
SELECT LineasConsultas.Idlinea, LineasConsultas.descripcion_producto, LineasConsultas.cantidad, LineasConsultas.precio_unitario, consultas.idproveedor, consultas.orden
FROM Material INNER JOIN (consultas INNER JOIN LineasConsultas ON consultas.Idconsulta = LineasConsultas.Idconsulta) ON Material.Nº_Orden = consultas.orden
WHERE (((LineasConsultas.Idlinea)=" & idActual & "))"

DoCmd.OpenQuery miSql

End Sub
Juanjo Luna (Lunasoft)
Microsoft MVP 2023

----------------

https://www.luna-soft.es/

https://www.youtube.com/ACCESSoTOTAL

https://github.com/ACCESSoTOTAL
Arriba
minero1 Ver desplegable
Nuevo
Nuevo


Unido: 12/Enero/2022
Localización: Portugalete
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 12/Enero/2022 a las 14:34
Gracias de nuevo por tu respuesta. He probado las dos opciones y me ocurre una cosa cuando menos curiosa (no me quiero cabrear conmigo mismo). Así como la consulta llegaba a ejecutarse antes de introducir los cambios que me has indicado, ahora me devuelve errores de que no encuentra la tabla vinculada (Material). Tu código creo que está correctamente escrito, incluso he optado por sustituir la sentencia SQL por la original (que arrancaba) y me sigue dando el mismo error de la tabla vinculada.

Arriba
lunasoft Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Noviembre/2014
Localización: Graz
Estado: Sin conexión
Puntos: 100
Enlace directo a este mensaje Enviado: 13/Enero/2022 a las 08:37
la consulta solo funcionará desde el formulario (y este abierto).

Si quieres que funcione desde el editor de consultas, cambia me,id...  por un valor

Juanjo Luna (Lunasoft)
Microsoft MVP 2023

----------------

https://www.luna-soft.es/

https://www.youtube.com/ACCESSoTOTAL

https://github.com/ACCESSoTOTAL
Arriba
minero1 Ver desplegable
Nuevo
Nuevo


Unido: 12/Enero/2022
Localización: Portugalete
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 13/Enero/2022 a las 09:09
Gracias de nuevo. El botón está situado en un subformulario (LineasConsultas) dentro de otro formulario (consultas)
Arriba
lunasoft Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Noviembre/2014
Localización: Graz
Estado: Sin conexión
Puntos: 100
Enlace directo a este mensaje Enviado: 13/Enero/2022 a las 09:43
Vamos a ver.
donde en tu consulta inicial pone [Formularios]![LineasConsultas]![Idlinea], debes poner el valor a buscar.
Tú debes saber cómo se llama el campo que contiene ese valor y dónde está.
Todo el problema reside en eso. Más no puedo decirte

Juanjo Luna (Lunasoft)
Microsoft MVP 2023

----------------

https://www.luna-soft.es/

https://www.youtube.com/ACCESSoTOTAL

https://github.com/ACCESSoTOTAL
Arriba
minero1 Ver desplegable
Nuevo
Nuevo


Unido: 12/Enero/2022
Localización: Portugalete
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 13/Enero/2022 a las 09:51
Gracias, sigo con el tema
Arriba
minero1 Ver desplegable
Nuevo
Nuevo


Unido: 12/Enero/2022
Localización: Portugalete
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 13/Enero/2022 a las 13:51
He rehecho desde el principio la consulta y el botón. Si el formulario LineasConsulta se encuentra abierto funciona correctamente pero desde el subformulario no lo hace. Creo que haré un formulario modal que muestre únicamente el registro que se quiere migrar y, desde él, ejecutar la consulta con el botón tal y como está ahora. Es una salida poco ortodoxa pero es la única que se me ocurre.
Arriba
minero1 Ver desplegable
Nuevo
Nuevo


Unido: 12/Enero/2022
Localización: Portugalete
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 13/Enero/2022 a las 14:46
Conseguido, al final no fue un formulario modal, bastó con uno tabular filtrado por el campo Idlinea y el botón correspondiente para ejecutar la consulta.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable