Access - Imprimir subformulario filtrado

 
Vista:
sin imagen de perfil

Imprimir subformulario filtrado

Publicado por yelram (3 intervenciones) el 23/09/2015 19:00:47
Resumen:

ACCESS 2013 (32 bits)
Tabla: Clientes (id, nombre, apellidos, nif)
Formulario principal : Principal
Subformulario: Subformulario (que se muestra en forma hoja de datos)
Cuadro de texto para el contador de cliente sque se visualiza: txtTotal
Boton para actualizar: cmdrefresh
Boton para imprimir: cmdimprimir
Informe que me muestra los datos que quiero imprimir: inforcliente

Objetivo:

Al cargar Principal se muestra la "tabla" de los clientes(subformulario en modo hoja de datos) entonces con las opciones de access que salen en las cabeceras para filtrar y ordenar se filtra y aparecen menos datos.

Tengo un contador que me muestra la cantidad total de clientes que hay actualmente en la lista.
Cuando se aplica un filtro:
filtro1
o dos o 3, le doy a un boton para que actualice el contador (ya que se me ralla y automaticamente no lo hace).
El codigo que he puesto en el boton cmdfrefresh es:
1
Me.txtTotal = Subformulario.Form.RecordsetClone.RecordCount
Esto me lo hace correctamente y me muestra la cantidad de clientes que hay actualmente mostrandose en el subformulario.

El problema es cuando quiero visualizar el informe. En el boton imprimir:
1
DoCmd.OpenReport "inforcliente", acPreview, subformulario.Form.RecordSource

Y esto sigue mostrandome todos, no los que estan filtrados. He probado mil cosas y no hay manera.

El filtro sólo se realiza a través de las opciones visuales que da access.

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Imprimir subformulario filtrado

Publicado por Enrique Heliodoro (1664 intervenciones) el 23/09/2015 20:50:07
El origen de datos son todos los datos del origen que se le indique.
Estos datos (los datos en bruto) pueden estar condicionados por al menos dos causas:
.- Una (que suele ser transparente para el usuario) es la relación de dependencia que pueda haber con el formulario principal (si el formulario esta en funciones de subformulario)
.- La otra es el filtro aplicado y activo

El RecordsetClone cuenta los registros 'activos' del formulario, no los reales que pudieran existir pero las condiciones impuestas impiden mostrar (pero siguen 'existiendo')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Imprimir subformulario filtrado

Publicado por yelram (3 intervenciones) el 23/09/2015 20:53:09
¿Entonces como hago para imprimir los activos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Imprimir subformulario filtrado

Publicado por Enrique Heliodoro (1664 intervenciones) el 23/09/2015 21:09:41
Aplica los condicionantes que estén 'vivos' en el formulario, en la llamada al informe se le puede adjuntar un filtro como un parámetro mas.

Solo se precisa crear el filtro en base a los condicionantes antes mentados, si se crea una consulta de selección que emule los datos que se obtienen (añadiéndole condiciones), se puede copiar/emular lo que sigue al Where (en la vista diseño de esa consulta)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imprimir subformulario filtrado

Publicado por conchita slide (1 intervención) el 02/09/2021 20:27:56
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
1
2
3
4
5
6
7
8
9
10
11
Private Sub Comando13_Click()
 
Dim NombreInforme As String
Dim criterio As String
NombreInforme = "TUINFORME"
FilterOn = True
criterio = Me.TUSUBFORMULARIO.Form.Filter
DoCmd.OpenReport NombreInforme, acPreview, , criterio
msgbox " mostra la colacha"
 
End Sub
'ESTO ES EN ACCESS 2007
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar