Consulta de Filtro Access 2010

Les tengo una consulta. He generado una BD (Access 2010), he creado 1 Formulario para la Carga de Datos, otro como Menú para el manejo de informes, formularios y para indicar los filtros que utilizare en los informes.

Ahora bien, Mi consulta se refiere a los Filtros. En la tabla datos tengo variados campos, entre ellos Nombres y Apellidos, Dirección, Tipo de Negocio. Y tengo un Informe que me permite ver los clientes con sus direcciones. Desde mi Menú, le indico al Informe porque Tipo de Negocio quiero filtrar seleccionándolo con un cuadro combinado y ejecuto un botón para llamar el Informe. Hasta aquí todo va bien, ¿Cómo puedo ver ese mismo informe por Total Negocios?. No consigo la forma!, a menos que tenga otro informe sin filtro.

Por favor déjeme saber cuál es su sugerencia.

1 Respuesta

Respuesta
1

¿Cómo haces el filtro? Es decir, por medio del botón (con macro o código), con la consulta en que se basa el informe, directamente en el informe...

¡Gracias!  Aquí te envió la información detallada.

Te comento, cree un formulario llamado “MENU” para manejar, las consultas, informes y filtros.

Cree una consulta llamada CStatus, con la siguiente estructura:

Campo:          Nombre         Dirección      Tipo Negocio

Tabla:             Negocio         Negocio         Negocio

Criterio:                                                         [Forms]![Menu].[txtTipo].[value]

Luego, inserte en MENU un cuadro de texto y lo nombre Txt Tipo, y lo cambie a Cuadro Combinado”, colocando en Propiedades: Origen de la fila SELECT T_Neg.Tipo_Neg FROM T_Neg; En esta Tabla “T_NEG” guardo los diferentes tipos de negocios (Kiosco, Puesto de venta, Area Verde, etc.)

En MENU inserte un botón de comando con el nombre “cmdAbreVig” y  coloque el siguiente código el Hacer Click

Private Sub CmdAbreVig_Click()

 If IsNull(Me.TxtTipo.Value) Then

 MsgBox "No ha indicado El Tipo de Actividad", vbInformation, "SIN TIPO ACTIVIDAD"

 End If

   'Abrimos el informe en vista previa

    DoCmd.OpenReport "Vigencia", acViewReport 

End Sub

Bueno, esto es lo que estoy haciendo, te informó que puedo ver el informo filtrado por tipo, pero quisiera poder verlo por Total también.

Espero haberme explicado, muchas gracias de antemano por tus diligencias,

Saludos

Bien, te comento dos formas, por como lo haría yo:

1º/ En tu tabla T_Neg tienes uno llamado "TODOS":

En este caso el código del botón quedaría así:

Private Sub CmdAbreVig_Click()

 If IsNull(Me.TxtTipo.Value) Then

 MsgBox "No ha indicado El Tipo de Actividad", vbInformation, "SIN TIPO ACTIVIDAD"

Exit Sub

 End If

   'Abrimos el informe en vista previa

Select Case Me.TxtTipo

Case "TODOS"   'En este caso se abre sin filtrar

   DoCmd.OpenReport "Vigencia" , acViewRepor

Case Else 'En caso contrario se abre filtrado

    DoCmd.OpenReport "Vigencia", acViewReport,,"Tipo Negocio='" & Me.TxtTipo & "'"

End Select

End Sub

2º/Si no tienes en la tabla el registro TODOS, y quieres que al dejar en blanco el cuadro de texto de muestre todos los registros en el informe:

Private Sub CmdAbreVig_Click()

 If IsNull(Me.TxtTipo.Value) Then

   DoCmd.OpenReport "Vigencia", acViewRepor  'En este caso se abre sin filtrar

 Else 'En caso contrario se abre filtrado

    DoCmd.OpenReport "Vigencia", acViewReport,,"Tipo Negocio='" & Me.TxtTipo & "'"

End If

End Sub

Y en ambos casos quita el criterio de la consulta.

¡Gracias! Muchísimas gracias.

Estoy haciendo la prueba (Caso 1), pero al quitar el filtro en la consulta como mencionaste, la data que me trae en el informe es del Total y si selecciono otro Tipo de Negocio cambio sólo el titulo del Filtro pero la data no.

El Informe "Vigencia" le coloque en el Encabezado de página un cuadro de texto que en propiedades Origen del Control tiene =[Formularios]![Menu].[TxtTipo].[Valor]

Ejemplo Informe

Tipo de Negocio:  Kiosco ó Puesto de Venta...

Status                           Total Neg.

Vigente                         =DCont("Id","CStatus","Status='Vigente'")

Vencido                        =DCont("Id","CStatus","Status='Vencido'")

Pendiente                     =DCont("Id","CStatus","Status='Pendiente'")

Total....                         =DCont("Id","CStatus")

Claro, los valores de los distintos  Status son cuadros de texto que en propiedades Origen del Control tiene esa expresión arriba descrita.

Me explique?

saludos

Sí, creo que te entiendo. La solución está en modificar los DCont, por ejemplo:

Status Vigente:

Total Neg: =SiInm([Formularios]![Menu].[TxtTipo]="TODOS"; DCont("Id","CStatus","Status='Vigente'"); DCont("Id","CStatus","Status='Vigente' AND Tipo_Neg='" & Formularios]![Menu].[TxtTipo] & "'")

Es decir, que si seleccionas todos los negocios (TODOS), te cuente todos los Vigentes de la consulta CStatus, y si seleccionas cualquier negocio concreto, te cuente los vigentes de ese negocio de la consulta.

Lo mismo tendrías que hacer con los otros.

Disculpa, me falta poner un cierre de paréntesis al final:

Total Neg: =SiInm([Formularios]![Menu].[TxtTipo]="TODOS"; DCont("Id","CStatus","Status='Vigente'"); DCont("Id","CStatus","Status='Vigente' AND Tipo_Neg='" & Formularios]![Menu].[TxtTipo] & "'"))

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas