Problemas con informes

Te explico mi problema:
Tengo un formulario con 8 casillas de verificación. Quiero que cuando pulso un botón vaya a un registro que le indico mediante un filtro y compruebe que casillas de verificación están señaladas. A partir de ahí, tendría que ir a un informe e imprimir tantos informes como casillas de verificación estuviesen marcadas. Hasta aquí todo correcto. El problema se plantea porque quiero que según que casilla de verificación esté marcada, el campo oficina tenga un valor. Para la casilla BAL el campo tendría que ser "040"... Es decir imprimir el informe con dicho valor en el campo. Pues bien, esto no hay forma de poder lograrlo y no se porqué; bueno, sí lo se: por que soy novato en esto. A ver si me puedes ayudar. Te pongo el código que utilizo para ver en que fallo.
'------------------------------------------------------------
' Comando51_Click
'
'------------------------------------------------------------
Private Sub Comando51_Click()
On Error GoTo Comando51_Click_Err
DoCmd.OpenReport "NSI", acViewPreview, "", "[NSI]![NUM]=[Forms]![IMPRConsulta]![NUM]", acNormal
If BAL = -1 Then
Me.OFICINA.Text = "BALAGUER"
DoCmd.PrintOut acSelection, , , acHigh, 1, True
End If
If FLE = -1 Then
Me.OFICINA = "DOCTOR FLEMING"
DoCmd.PrintOut acSelection, , , acHigh, 1, True
End If
If MRE = -1 Then
Me.OFICINA = "015"
DoCmd.PrintOut acSelection, , , acHigh, 1, True
End If
If SEU = -1 Then
Me.OFICINA = "203"
DoCmd.PrintOut acSelection, , , acHigh, 1, True
End If
If SOL = -1 Then
Me.OFICINA = "207"
DoCmd.PrintOut acSelection, , , acHigh, 1, True
End If
If TAR = -1 Then
Me.OFICINA = "217"
DoCmd.PrintOut acSelection, , , acHigh, 1, True
End If
If TRE = -1 Then
Me.OFICINA = "234"
DoCmd.PrintOut acSelection, , , acHigh, 1, True
End If
If VIE = -1 Then
Me.OFICINA = "243"
DoCmd.PrintOut acSelection, , , acHigh, 1, True
End If
Me.OFICINA = ""
DoCmd.Close acReport, "NSI"
Comando51_Click_Exit:
Exit Sub
Comando51_Click_Err:
MsgBox Error$
Resume Comando51_Click_Exit
End Sub

3 Respuestas

Respuesta
1
Lo que pasa es que cuando llamas al informe .. ya sales del formulario.. y tu usas ese valor "oficina" direccionado al formulario...
Sabes mejor, guarda ese valor en un archivo y en el informe abres ese archivo y recuperas el valor grabado...
archivo / tabla .
Respuesta
1
Creo que debes estudiar más a fondo las opciones del método openreport del objeto docmd, puesto que tiene un parámetro llamado condición where donde le puedes especificar que registros quieres que saque. Por otra parte, si el código está en un formulario desde el que abres otro informe y luego ejecutas el método printout, este método estará asociado al propio formulario y por eso te imprimirá el formulario, nunca el informe que mandaste llamar, según creo.
Espero te sea de ayuda, y no dudes en volver a preguntar si no me he explicado bien o es una respuesta imcompleta.
Respuesta
1
Utiliza Requery y Refresh antes de imprimir

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas