Copiar campos de una tabla a otra |
Responder |
Autor | |
minero1
Nuevo Unido: 12/Enero/2022 Localización: Portugalete Estado: Sin conexión Puntos: 23 |
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. |
|
lunasoft
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 04/Noviembre/2014 Localización: Graz Estado: Sin conexión Puntos: 100 |
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 |
|
lunasoft
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 04/Noviembre/2014 Localización: Graz Estado: Sin conexión Puntos: 100 |
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 |
|
minero1
Nuevo Unido: 12/Enero/2022 Localización: Portugalete Estado: Sin conexión Puntos: 23 |
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
|
|
minero1
Nuevo Unido: 12/Enero/2022 Localización: Portugalete Estado: Sin conexión Puntos: 23 |
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"
|
|
lunasoft
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 04/Noviembre/2014 Localización: Graz Estado: Sin conexión Puntos: 100 |
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 |
|
minero1
Nuevo Unido: 12/Enero/2022 Localización: Portugalete Estado: Sin conexión Puntos: 23 |
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.
|
|
lunasoft
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 04/Noviembre/2014 Localización: Graz Estado: Sin conexión Puntos: 100 |
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 |
|
minero1
Nuevo Unido: 12/Enero/2022 Localización: Portugalete Estado: Sin conexión Puntos: 23 |
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)
|
|
lunasoft
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 04/Noviembre/2014 Localización: Graz Estado: Sin conexión Puntos: 100 |
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 |
|
minero1
Nuevo Unido: 12/Enero/2022 Localización: Portugalete Estado: Sin conexión Puntos: 23 |
Enviado: 13/Enero/2022 a las 09:51 |
Gracias, sigo con el tema
|
|
minero1
Nuevo Unido: 12/Enero/2022 Localización: Portugalete Estado: Sin conexión Puntos: 23 |
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.
|
|
minero1
Nuevo Unido: 12/Enero/2022 Localización: Portugalete Estado: Sin conexión Puntos: 23 |
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.
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |