Como imprimir informe si el checkbox esta marcado

Me gustaría saber como puedo imprimir un informe si tengo marcado el checkbox en access. Si por ejemplo el informe se llama "InformeDNI" i el chekcbox se llama "CheckDNI".

¿

Además si es un checkbox común para todos como podría hacerlo si tengo informes con nombres distintos pero el checkbox tiene el mismo nombre para todos?

1 respuesta

Respuesta
3

Por partes

1º, O bien en la propia casilla de verificación, en el evento Después de actualizar o en el evento al hacer clic de un botón

If Checkdni=-1 then

docmd.openreport"InformeDNI",,,"DNI= forms!nombredelformulario!dni"

End if

Suponiendo que el campo que defina ese registro en particular se llame DNI

Lo normal es hacer un único informe y decirle que abra( o imprima) el informe en un registro y que corresponde a un criterio en particular. Por ejemplo, vamos a suponer que tienes un informe con "todos" los DNI, Supongamos que en el formulario, en ese momento estás en el registro que tiene el cuadro de texto DNI como 22.222.222A. Puedes poner lo de arriba.

O también puedes poner un combinado llamado ElegirDNI y en su origen de la fila poner todos los DNI y en el evento Después de actualizar

Docmd.openreport"InformeDNI",,,"dni='" & me.elegir & "'"

En fin, claro que puedes usar una casilla única, pero tiene que haber algún valor que diferencie un DNI del otro.

HOla Icue,

El formulario que me muestra los DNI, viene de una consulta en la cual por ejemplo le digo, dime los DNI que contengan una A y me muestra 10 DNI, cada DNI tiene su propio informe con sus propios datos. Como puedo hacer para que según si marco la casilla o no, ¿al final haya un botón y me imprima los informes con DNI marcados?

Por lo que dices parece que el formulario es tipo tabular. Suponiendo que el archivo se llame igual que el DNI que está en ese registro puedes poner un botón y en sus evento Al hacer clic poner

Dim i as byte

docmd.gotorecord,,acfirst

for i=1 to form.recordset.recordcount

DoCmd.OpenReport "" & Me.DNI & "", acPreview

docmd.gotorecord,,acnext

next

Es decir, al pulsar el botón se va al primer registro, y te muestra el informe correspondiente a ese DNI, luego se va al siguiente registro y te muestra el correspondiente al nuevo DNI, y así hasta el final.

Hola Icue, Gracias por contestar. Pero no me acaba de funcionar como quiero.

Private Sub DNIAll-Click()
Dim i As Byte

DoCmd.GoToRecord , , acFirst

For i = 1 To Form.Recordset.RecordCount

DoCmd.OpenReport "DNIPaco", acViewPreview, , "[DNIP]=" & Me.DNIS & 

DoCmd.GoToRecord , , acNext

Next

DoCmd.GoToRecord , , acFirst

For i = 2 To Form.Recordset.RecordCount

DoCmd.OpenReport "DNIManolo", acViewPreview, , "[DNIM]=" & Me.DNIS & 

DoCmd.GoToRecord , , acNext

Next

Lo tengo puesto así pero no me funciona correctamente, no se donde indicarle que según si es DNI Manolo que su ID es 7 por ejemplo, abra dicho informe. Muchas gracias!

La instrucción que has puesto no sirve, está mal hecha. Es más sencillo y para evitar estar dando rodeos. Pon una imagen del diseño del formulario, y explica en que cuadro de texto guardas el valor que va a dar origen a abrir un informe u otro y el nombre de un par de informes.

Por ejemplo, si en el cuadro de texto Cliente vas a guardar el valor literal DNIPaco y el informe se llama igual, la instrucción sería

docmd.openreport"" & me.cliente & "", acpreview

Y te abriría el informe DNIPaco

Si en el cuadro de texto Clientes, lo que vas a guardar es el valor 22222222A, el informe debería llamarse igual, pero la instrucción sería la misma.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas