Access - Registro de datos SQL en varios informes

 
Vista:
sin imagen de perfil
Val: 32
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Registro de datos SQL en varios informes

Publicado por Didac (27 intervenciones) el 01/06/2022 19:13:49
Hola a todos he creado una rutina en VBA, que almacena los resultados de un informe en una tabla de SQL, este seria el cofigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim pedido
Dim BF, mystr
 
BF = Report!bfname
mystr = Left(BF, 4)
 
pedido = Report!REFERENCIA
 
MsgBox mystr
 
    DoCmd.SetWarnings False
DoCmd.RunSQL "Insert Into dbo_control(BF,Fecha,PE,count)Values('" & mystr & "',DATE(),'" & pedido & "','4')"
 DoCmd.SetWarnings True
End Sub

Hasta aqui todo bien.Mi pregunta es que en estos informes cuando se imprimen suelen ser unos 80 al dia, y todos seguidos, por que lo carga de una cosulta.

De momento solo he podido cargar los datos en la base de datos del primer registro ya que he puesto la consulta en la opcion de al cargar, pero no se en que opcion o como ponerlo para que me lo carge en todos los informes sin realizar vista previa.

Espero haber explicado correctamente el problema, muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Registro de datos SQL en varios informes

Publicado por Anonimo (3316 intervenciones) el 01/06/2022 19:52:44
Lo habitual es que los datos procedan de una tabla (el origen real) y se muestren en un informe.

No veo que problema pueda existir en que (de forma independiente a su impresión) se utilice la tabla o consulta como origen de datos para la inserción en bloque en la tabla 'control'.

Sera sencillo si los orígenes de los informes (la actual consulta o tabla) se puede reutilizar aunque requiera algún calculo intermedio..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 32
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Registro de datos SQL en varios informes

Publicado por Didac (27 intervenciones) el 01/06/2022 19:57:28
Los datos proceceden de una consulta, despues cada informe es una linea de consulta, con los datos que solicitamos. Pero me gustaria registrar un valor de cada informe en una tabla de SQL. El probllema que no encuentro la solucion es que al hacer impresion como son por ejemplos 80 informes, solo me guarda el del primer informe, el resto no, ya que tengo el codigo, en la accion d abrir, y no se si seria mejor tenerlo en por ejemplo al actualizar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Registro de datos SQL en varios informes

Publicado por Anonimo (3316 intervenciones) el 02/06/2022 02:22:12
Según deduzco: se ejecuta una consulta y por cada línea (registro) obtenida, un informe.

Se necesita guardar unos valores de cada informe en una tabla
(SQL es un lenguaje para manejar conjuntos de datos, no una tabla o almacén).

Los datos a guardar ¿están disponibles en la consulta original o se calculan en tiempo de ejecución en el informe? (por ejemplo un 'total')

Si se admite generar las anotaciones en la tabla 'control' independiente de que se impriman (o envíen a PDF o por correo o ....)

El dato mystr:
Es el nombre del informe ¿se nomina a cada informe o es el mismo para todos?
Si se genera un nombre personalizado para cada informe ¿de donde se pueden obtener las referencias para crearlo?

El dato fecha (Access lo trata como valor numérico)
Si el destino es un campo de tipo Fecha/Hora de Access: [con parte horaria = CDbl (Date) ], [sin parte horaria : CLong (Date)]
Si el destino es un campo de texto ... aplicaria la opcion utilizada

Pedido
Se asume que esta en la consulta

El valor '4' ¿numérico o alfanumérico?, Access es mas eficiente si se le dan datos adecuados

Con los datos disponibles actualmente propongo esta alternativa que inserta todos los registros en un único paso y sin utilizar el informe.

1
CrrentDb.Execute "Insert Into dbo_control(BF,Fecha,PE,count) Select Left(bfname, 4), Cdbl (Date), Pedido, '4' From [nombre de la consulta]"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eduardo

Registro de datos SQL en varios informes

Publicado por Eduardo (317 intervenciones) el 01/06/2022 22:22:15
Debe validar si ya existe el registro en la tabla control dbo_control. Puede ser con algo como:

1
2
3
4
5
If DCount("*", "dbo_control", "BF=" & mystr & " AND Fecha=DATE") = 0 Then
 
   DoCmd.RunSQL "Insert Into dbo_control(BF,Fecha,PE,count)Values('" & mystr & "',DATE(),'" & pedido & "','4')"
 
 End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar