Guardar resultado de consulta en tabla. Leer tabla.

Buenos días Angeles.
Nuevamente necesito tu ayuda.
Tengo una Base de Datos en la que los informes se guardan en ficheros Word en la forma "numero_id.doc" donde numero_id es el valor de un campo autonumérico del registro correspondiente al informe.
Necesito hacer un informe en el que se impriman varios documentos WORD guardados ( o simplemente imprimir varios documentos Word de forma automatizada con un botón o algo similar).
Hago una consulta de selección y -por ejemplo- recojo los valores numero_id = 103, 110 y 123.
Ahora necesito hacer un informe que me imprima seguidos los ficheros 103.doc, 110.doc y 123.doc (o simplemente imprimirlos todos seguidos).
No se si me he explicado bien. He pensado guardar provisionalmente esos valores en una tabla; luego leer la tabla registro por registro, llamando a Word en segundo plano cada vez y así hasta el último registro. Finalmente borrar todos los registros de la tabla.
Pero NO se como hacerlo con código VBA o SQL. ¿Qué código debo emplear para guardar el resultado de la consulta en una tabla? ¿Y luego como leo uno a uno hasta el final todos los registros de esa tabla?
¿Se te ocurre una solución alternativa mejor?
Muchas gracias por tu tiempo.
Un cordial saludo.

1 respuesta

Respuesta
1
No tienes porque guardar el resultado de una consulta en una tabla, las consultas de selección actúan exactamente igual que tablas (de ahí que una consulta de selección no se pueda llamar igual que una tabla). Supongamos que la consulta se llama Valores, para leer los registros de esa tabla se utiliza el recordset. El recordset no es más que una vista de una tabla o de una consulta. Sería:
' Primero declaramos las variables:
Dim db as Database
Dim rs as Recordset
' Activamos la BD
Set db=Currentdb
' Creamos el recordset
Set rs=db.OpenRecordset("Select * from Valores")
' Le recorremos con el bucle Do While ... Loop (EOF ---> fin del recordset)
Do while not rs.eof ' Es decir: hazme mientras no sea final de recordset
<lo que quieras hacer>
rs.MoveNext ' Vamos al siguiente registro
Loop ' Volvemos al principio del bucle.
Me cuentas.
Genial Angeles.
Es muy sencillo lo que propones; utilizar una tabla como pensaba yo, aunque luego borres los registros, solo sirve para ir "engordando" la Base de Datos.
Ahora solo tengo que llamar a Word en segundo plano para que vaya imprimiendo en secuencia una selección de mis informes previamente guardados.
Muchas gracias. Un cordial saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas