Access - Formulario con 3 o mas filtros

 
Vista:

Formulario con 3 o mas filtros

Publicado por DAvid (1 intervención) el 08/07/2004 12:36:18
hola, tengo un formulario con 3 o mas cuadros combinados, la informacion de estos biene de unas tablas 3.
En cada tabla existe un registro en blanco por si no quiero ningun valor.
Dependiendo de lo q escoja en cada cuadro combinado me gustaria filtrar y que el resultado saliera por ejemplo en un consulta.
Bien si yo escojo 3 criterios funciona, pero en el momento q en un cuadro combinado escogo el valor de blanco, pq solo quiero 2 criterios no me funciona, ayuda por favor.
Gracias...
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
Imágen de perfil de Alejandro

Formulario con 3 o mas filtros

Publicado por Alejandro (4142 intervenciones) el 08/05/2023 23:36:05
Hola, David.

Si estás teniendo problemas al filtrar tus datos en un formulario de Access cuando seleccionas el valor en blanco en uno de los cuadros combinados, es posible que necesites ajustar tu lógica de filtrado. Aquí tienes algunas sugerencias para solucionar el problema:

1. Verifica las consultas: Asegúrate de que las consultas en las que basas tus filtros estén correctamente diseñadas y consideren los casos en los que se selecciona el valor en blanco. Puedes utilizar criterios de consulta como "Es Null" o "Es Nulo" para incluir registros en blanco en los resultados.

2. Ajusta la lógica de filtrado: En lugar de filtrar los registros directamente en los cuadros combinados, puedes utilizar un botón de filtro en tu formulario para aplicar los filtros de manera más controlada. Al hacer clic en el botón de filtro, puedes verificar los valores seleccionados en los cuadros combinados y construir una consulta dinámica que tenga en cuenta los criterios seleccionados.

Aquí tienes un ejemplo de código VBA que puedes utilizar en el evento de clic de un botón de filtro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub btnFiltrar_Click()
    Dim strFiltro As String
 
    ' Verifica los valores seleccionados en los cuadros combinados
    If Not IsNull(Me.cboCriterio1) Then
        strFiltro = "Campo1 = '" & Me.cboCriterio1 & "'"
    End If
 
    If Not IsNull(Me.cboCriterio2) Then
        If Len(strFiltro) > 0 Then
            strFiltro = strFiltro & " AND "
        End If
        strFiltro = strFiltro & "Campo2 = '" & Me.cboCriterio2 & "'"
    End If
 
    If Not IsNull(Me.cboCriterio3) Then
        If Len(strFiltro) > 0 Then
            strFiltro = strFiltro & " AND "
        End If
        strFiltro = strFiltro & "Campo3 = '" & Me.cboCriterio3 & "'"
    End If
 
    ' Aplica el filtro a la consulta
    Me.subformulario.Form.RecordSource = "SELECT * FROM TuTabla WHERE " & strFiltro
 
    ' Actualiza el subformulario
    Me.subformulario.Form.Requery
End Sub

Asegúrate de reemplazar "cboCriterio1", "cboCriterio2" y "cboCriterio3" con los nombres de tus cuadros combinados, y "Campo1", "Campo2" y "Campo3" con los nombres de los campos en tus tablas.

Este código construye una cadena de filtro basada en los valores seleccionados en los cuadros combinados y luego aplica el filtro a la consulta utilizada en el subformulario.

Espero que esto te ayude a solucionar el problema de filtrado en tu formulario de Access. ¡Buena suerte!
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