Como imprimir un subformulario filtrado

A tod@s,

Soy novato en Access (2000). Me ha surgido una duda. He creado un formulario en el cual he colocado un subformulario que coge los datos de una tabla. Mediante un botón aplico un filtro a dicho subformulario. Hasta ahí todo bien. El problema me surge a la hora de imprimir los datos filtrados. He creado otro botón para que me lo imprima, pero siempre me imprine los datos del subformulario sin filtrar. ¿Alguien sabria como puedo lograr imprimir solamente los datos obtenidos después de filtrarlos?

3 Respuestas

Respuesta
1

En un Botón de imprimir que creo que ya tienes, adapta éste código que te envío completo para mejor comprensión.

Private Sub BtnVistaPrevia_Click()
Dim NombreInforme As Sting
On Error GoTo VistaPrevia_Click_TratamientoErrores
NombreInforme = "ElNombreDeTuInforme"
DoCmd.OpenReport NombreInforme, acPreview
If MsgBox("Deseas enviar a impresión?", vbYesNo) = vbYes Then
        DoCmd.OpenReport NombreInforme
End If
'Para que los Datos del Informe coincidan con los del Formulario
Reports(NombreInforme).Filter = Me.Filter
Reports(NombreInforme).FilterOn = True
VistaPrevia_Click_Salir:
On Error GoTo 0
Exit Sub
VistaPrevia_Click_TratamientoErrores:
MsgBox "Error " & Err.Number & " en Procedimiento.: VistaPrevia_Click de Documento VBA: Form_TarjetasTodasSubForm (" & Err.Description & ")"
Resume VistaPrevia_Click_Salir
End Sub   'VistaPrevia_Click()

Mis saludos >> Jacinto

Respuesta

No necesitas filtrar por el reporte, esto lo puedes hacer desde la instrucción Docmd

Debes agregar al botón de imprimir algo como:

Dim strCriterio as String

strCriterio="campo a filtrar=" & filtrado

Docmd OpenReport "elreporte",,, strCriterio

NOTA: strCreterio va en la cláusula WHERE es como si utilizaras una consulta SQL la ventaja es que puedes hacer el filtro tan complejo como sea necesario.

Respuesta

Private Sub Comando13_Click() 'creo botón de imprimir en formulario principal

'declaro dos variables string

Dim NombreInforme As String
Dim criterio As String

' Asocio la primer variable al informe que tengamos (sino lo tenemos, debemos generar un informe del subformulario)

NombreInforme = "EL NOMBRE DE TU INFORME"

'activamos los filtros

FilterOn = True

'le asocio a la variable criterio los filtros del subformulario embebido en el formulario principal (osea formulario principal con un subformulario "Subf_AGENTESubf_AGENTE" esto lo tendrías que reemplazar por el nombre de tu subformulario)

criterio = Me.Subf_AGENTE.Form.Filter 

'abro el informe y le aplico los filtros

DoCmd.OpenReport NombreInforme, acPreview, , criterio

End Sub

EL CODIGO LIMPIO

Private Sub Comando13_Click()

Dim NombreInforme As String
Dim criterio As String
NombreInforme = "Informe1"
FilterOn = True
criterio = Me.Subf_AGENTE.Form.Filter
DoCmd.OpenReport NombreInforme, acPreview, , criterio

End Sub

'ESTO ES EN ACCESS 2007

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas