Imprimir página | Cerrar ventana

Formulario con varios filtros

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84765
Fecha de impresión: 27/Marzo/2026 a las 00:23


Tema: Formulario con varios filtros
Publicado por: Plu
Asunto: Formulario con varios filtros
Fecha de publicación: 19/Octubre/2019 a las 23:01
Saludos a todos,
Acudo aquí bastante desesperado ya que mis conocimientos son bastante básicos.
Tengo una base de datos bastante sencilla. Tres tablas: proyectos, investigadores, partes.
Un formulario basado en una consulta en el que tengo dos cuadros de fechas (desde y hasta) asociadas a un botón que al hacer click genera un informe con el resultado (muestra todos los proyectos que se encuentran entre las dos fechas indicadas con todos los empleados que han participado, número de horas invertidas por cada empleado...
Lo que quiero conseguir es que en el formulario, al meter un rango de fechas (x.e. desde el 01/01/2019 hasta 03/04/2019), en el siguiente cuadro me ofrezca sólo los proyectos que se encuentren en esas fechas (aplicando un primer filtro) y una vez seleccionado el proyecto que me interese, que en el siguiente cuadro sólo me ofrezca los empleados que han participado en ese proyecto seleccionado (éste sería el segundo filtro) y ya al pulsar el botón que sólo muestre en el informe los datos del empleado (horas trabajadas, tareas...) en el proyecto elegido entre las fechas elegidas.

No sé si me he explicado muy bien. El caso es que no consigo plasmar ésto. No sé si es que lo estoy planteando con filtros cuando debería hacerlo con otras opciones.
Se agradece cualquier ayuda 

Pego el código que estoy usando, pero lamentablemente no me devuelve nada. No consigo que filtre los proyectos según fechas indicadas. El cuadro muestra todos los proyectos existentes. Lo mismo con investigadores.
Además, las fechas en el cuadro antes salían bien dd/mm/aaaa y ahora mismo salen 24/01/yyyy

Private Sub Comando7_Click()

Dim FiltroFecha As String, FiltroProyecto As String, FiltroInvestigador As String, FiltroInforme As String

Set Frm = Forms!FBuscar.Form
FiltroFecha = "Fecha BETWEEN #" & Frm.txtFechaIni2 & "# AND #" & Frm.txtFechaFin2 & "#"
FiltroProyecto = "Proyecto="" & Me.txtProyecto & "
FiltroInvestigador = "Investigador =" ' & Me.txtInvestigador & '
FiltroInforme = FiltroFecha & " AND " & FiltroProyecto & " AND " & FiltroInvestigador & " AND " & FiltroFecha1
Me.Filter = FiltroInforme
Me.FilterOn = True
Set Frm = Nothing
End Sub

Gracias



Respuestas:
Publicado por: rokoko
Fecha de publicación: 20/Octubre/2019 a las 09:06
Para el primer filtro te valdria la consulta que utilizas en el informe, esa consulta deberia ser el origen de datos del formulario.

A partir de hay a esa consulta le irias añadiendo los sigueintes filtros......

Busca combos en cascada o cuadros combinados en cascada.......

Te dejo un enlace de una base de datos que tiene filtros en cascada y te muestra datos en formulario y un buacador que filtra conforme escribes y te muestra los resultados en una lista

https://www.dropbox.com/s/86dmp9hiabo3hzn/Tracks.rar?dl=0


Publicado por: Plu
Fecha de publicación: 20/Octubre/2019 a las 13:30
Gracias por tu respuesta,
He estado mirando los cuadros combinados en cascada y consigo que una vez metido un proyecto sólo me muestre los investigadores asociados al mismo.

No consigo enlazar eso con el rango de fechas. Me indicas que como primer filtro me valdría la consulta que uso en el informe:

Private Sub Comando7_Click()
If Not IsNull(Me.txtFechaIni2.Value) Or Not IsNull(Me.txtFechaFin2.Value) Then
DoCmd.OpenReport "PartesConsulta", acViewPreview
Else
MsgBox "Ninguna fecha puede quedar en blanco", vbExclamation, "AVISO"
End If
End Sub

Ésa es la consulta que usaba en origen. Entiendo que debería quedar algo así?:

Private Sub Comando7_Click()
If Not IsNull(Me.txtFechaIni2.Value) Or Not IsNull(Me.txtFechaFin2.Value) Then
y a partir de aquí enlazar con el filtro de los cuadros combinados en cascada? ¿Cómo enlazo ese filtro?

Gracias


Publicado por: rokoko
Fecha de publicación: 20/Octubre/2019 a las 13:36
As probado a poner la consulta como origen de datos del formularirio?? Hay ya tienes los filtros(criterios) puestos, si te funciona en un informe te funcionara en el nformulario. Tendras que refrescar el formulario.


Todos los criterios que te hagan falta iran en la consulta, fijate en el ejemplo que te he puesto....



Imprimir página | Cerrar ventana