Ayuda con recordsets

Hola a todos.
¿Cómo se podría hacer con código que al apretar a un botón analizara
registro a registro de una consulta y que dependiendo del valor de un campo
imprimiera un informe u otro de cada registro?
Por ejemplo:
Registro 1: Campo1 = 5 ---- Imprimir informe5 con datos solamente Registro1
Registro 2: Campo1 = 2 ---- Imprimir informe2 con datos Registro 2
...
Gracias.

1 Respuesta

Respuesta
1
Supongamos que la consulta se llama "qryConsulta", que el campo a chequear se llama "qryFldCampo", que la clave que define el Registro es "qryKeyCampo" y que el campo del origen de datos del informe por el que queremos filtrar dicho informe se llama "rptFldCampo".
El código que buscas sería algo así como:
Dim oRS as DAO.Recordset
... Código que tengas que ejecutar
ORS. OpenRecordset "qryConsulta"
Do Until oRS.EOF
Select Case oRS.Fields("qryFldCampo")
Case 5
Docmd.OpenReport "Informe5", acNormal, ,"rptFldCampo=" & oRS.Fields("qyrKeyCampo"), acHidden
Case 2
Docmd.OpenReport "Informe2", acNormal, ,"rptFldCampo=" & oRS.Fields("qyrKeyCampo"), acHidden
...
End Select
oRS.MoveNext
Loop
oRS.Close
Set oRS = Nothing
... Código a Ejecutar
Gracias por responder.
He hecho lo que me has indicado y cuando le doy al botón aparece un error en tiempo de ejecución: "Error 91, variable de objeto o bloque with no establecido". Y se subraya la linea de oRS.OpenRecordset "qryConsulta". ¿Cuál puede ser el problema?.
Perdona la pifia.
Cambia la línea
ORS. OpenRecordset "qryConsulta"
Por
Set oRS = DBEngine(0)(0).OpenRecordset "qryConsulta"
Pequeño error de tecleo con prisa.
OpenRecordset es un método del Objeto Base de Datos y DBEngine(0)(0) es el objeto Base de Datos que apunta a la base de datos activa (en la que estás ejecutandoi el módulo.
Lo que te había puesto es una ABERRACIÓN (en mayúsculas (y negrita no porque no hay aquí) digna de un BURRO DESPISTADO (como yo sin ir más lejos).
Tranquilo eso nos puede pasar a todos, es un simple despiste.Con esta subsanación el código me funciona perfectamente. Muchísimas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas