** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Código VBA datos anexados
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCódigo VBA datos anexados

 Responder Responder
Autor
Mensaje
CacoMarco Ver desplegable
Asiduo
Asiduo


Unido: 12/Octubre/2011
Localización: Chile
Estado: en línea
Puntos: 247
Enlace directo a este mensaje Tema: Código VBA datos anexados
    Enviado: 13/Febrero/2019 a las 04:23
Buenas Noches estimados.
Este es el código SQL de una consulta de datos anexados.

INSERT INTO TbDetallePresupuesto ( IdProducto, Stock, Cantidad )
SELECT TbTemporalAgregarRepuestos.IdProducto, TbTemporalAgregarRepuestos.Stock, TbTemporalAgregarRepuestos.CANTIDAD
FROM TbTemporalAgregarRepuestos;

El resultado en la tabla de destino es:

IdPresupuesto IdProducto Cantidad Stock
0 Codigo1 1 4
0 Codigo2 1 6
0 Codigo3 1 10
0 Codigo4 1 1

Como pueden observar el campo IdPresupuesto de la tabla destino (TbDetallePresupuesto) está en cero para cada registro.
Ese campo no está disponible en la tabla origen (TbTemporalAgregarRepuestos) por lo tanto quiero hacer lo siguiente:

En un formulario en donde sí se encuentra el campo IdPresupuesto poner un botón y mediante código ejecutar el SQL de arriba pero que agregue a la tabla destino el campo IdPresupuesto a cada registro.

Para dar más detalles: El Formulario tiene un encabezado y es en donde se encuentra el IdPresupuesto y el Subformulario detalle que se basa en la tabla TbDetallePresupuesto es el que quiero completar automáticamente con este código.

Favor, es posible me ayuden con el código ya que en primer lugar no se transformar el código SQL a código VBA y agregar el tema del IdPresupuesto.

Muy agradecido, un abrazo.




CacoMarco/Chile
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5044
Enlace directo a este mensaje Enviado: 13/Febrero/2019 a las 09:50
Hola!

Yo crearía variables para guardar los valores de los controles del subformulario y luego los inserto todos:

Sería algo así, sin probar:

Dim valor1 
Dim Valor2
Dim valor3
     
Valor1 = Me!Subform1.Form!IdProducto
valor2 = Me!Subform1.Form!Stock
valor3 = Me!Subform1.Form!CANTIDAD
'Luego ejecuto Insert Into
CurrentDb.Execute "TbDetallePresupuesto (IdPresupuesto, IdProducto, Stock, Cantidad ) values ('" & Me.IdPresupuesto & "','" & valor1 & "', '" & valor2 & "', '" & valor3 & "' )"


Espero que te sirva.
Un Saludo.
Arriba
CacoMarco Ver desplegable
Asiduo
Asiduo


Unido: 12/Octubre/2011
Localización: Chile
Estado: en línea
Puntos: 247
Enlace directo a este mensaje Enviado: 13/Febrero/2019 a las 13:11

Gracias por responder Mounir.

Ejecuto el código y me da error, me dice que el motor de la BD no puede encontrar la tabla o consulta de entrada TBDetallePresupuesto.

Mira, estoy tratando de adaptar tu código porque a las variables Valor1, Valor2, Valor3 asignas valores del subformulario.

Pero el subformulario está vacío, y quiero llenarlo automáticamente desde un botón.

 

Estoy insistiendo con ejecutar el SQL de datos anexados cuyo código ya conseguí:

DoCmd.RunSQL "INSERT INTO TbDetallePresupuesto ( IdProducto, Stock, Cantidad ) SELECT IdProducto, Stock, Cantidad FROM TbTemporalAgregarRepuestos"

A esos registros que se copiaron en la TbDetallePresupuesto ahora debo incorporar el IdPresupuesto que tengo disponible en el form principal o que es lo mismo el último Campo IdPresupuesto de la QryFrmPresupuesto que soporta ese form principal.

He tratado de adaptar tu código, pero no me resulta.

Private Sub Boton1_Click()

Dim valor1

valor1 = Me.IdPresupuesto

DoCmd.RunSQL "INSERT INTO TbDetallePresupuesto ( IdProducto, Stock, Cantidad ) SELECT IdProducto, Stock, Cantidad FROM TbTemporalAgregarRepuestos"

CurrentDb.Execute "TbDetallePresupuesto (IdPresupuesto) values ('" & valor1 & "')"

End Sub

Pero me entrega el error que no encuentra la TbDetallePresupuesto

Gracias por el tiempo,


CacoMarco/Chile
Arriba
CacoMarco Ver desplegable
Asiduo
Asiduo


Unido: 12/Octubre/2011
Localización: Chile
Estado: en línea
Puntos: 247
Enlace directo a este mensaje Enviado: 13/Febrero/2019 a las 13:13
Sorry, el error lo arroja en la sentencia CurrentDb.Execute "TbDetallePresupuesto (IdPresupuesto) values ('" & valor1 & "')".

La sentencia anterior Docmd.RunSQL......... la ejecuta sin problemas
CacoMarco/Chile
Arriba
CacoMarco Ver desplegable
Asiduo
Asiduo


Unido: 12/Octubre/2011
Localización: Chile
Estado: en línea
Puntos: 247
Enlace directo a este mensaje Enviado: 13/Febrero/2019 a las 13:45
Estimado Mounir, le he estado dando vueltas y se me ocurre algo y agradeceré me puedas ayudar con el código VBA o procedimiento.
En primer lugar tengo el resultado en la TbDetallePresupuesto (después de ejecutar el código de datos anexados):

IdPresupuestoIdProductoCantidadStock
0Codigo114
0Codigo216
0Codigo3110
0Codigo411

Y en la consulta QryFrmPresupuesto tengo el último registro del IdPresupuesto.

Entonces podría agregar ese último IdPresupuesto en la tabla TbDetallePresupuesto con la condición que sólo lo haga en los campos IdPresupuesto = 0.
Eso debo transformarlo en código o una nueva consulta de datos anexados, pero ni idea.

Gracias nuevamente,
CacoMarco/Chile
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 10718
Enlace directo a este mensaje Enviado: 13/Febrero/2019 a las 14:05
Suponiendo que el campo del formulario sea IdPresupuesto:

DoCmd.RunSQL "INSERT INTO TbDetallePresupuesto ( IdPresupuesto, IdProducto, Stock, Cantidad ) SELECT " & Me.IdPresupuesto & ", IdProducto, Stock, Cantidad FROM TbTemporalAgregarRepuestos"
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
CacoMarco Ver desplegable
Asiduo
Asiduo


Unido: 12/Octubre/2011
Localización: Chile
Estado: en línea
Puntos: 247
Enlace directo a este mensaje Enviado: 13/Febrero/2019 a las 14:13
Thumbs Up
Mihura, Ustedes hacen todo lo complicado en algo tan sencillo.
Mil gracias, funciona perfectamente, la verdad estoy muy agradecido.
Gracias también a Mounir por todo.

Pueden cerrar el hilo :)
CacoMarco/Chile
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable