** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Formulario con varios filtros
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoFormulario con varios filtros

 Responder Responder
Autor
Mensaje
Plu Ver desplegable
Nuevo
Nuevo


Unido: 19/Octubre/2019
Localización: España
Estado: Sin conexión
Puntos: 3
Enlace directo a este mensaje Tema: Formulario con varios filtros
    Enviado: 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


Editado por Plu - 20/Octubre/2019 a las 02:32
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3062
Enlace directo a este mensaje Enviado: 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
Arriba
Plu Ver desplegable
Nuevo
Nuevo


Unido: 19/Octubre/2019
Localización: España
Estado: Sin conexión
Puntos: 3
Enlace directo a este mensaje Enviado: 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
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3062
Enlace directo a este mensaje Enviado: 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....
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable