Código:
Este codigo me lo robe de otra consulta/formulario que hacia algo similar. Lo unico que hice es cambiar los datos del subformulario que se muestra en el formulario y que es donde se aplica el filtro y en teoria deberia cambiar tambien el nombre de la tabla que en mi caso es una consulta... supongo que entienden... sin embargo al aplicar el filtro me arroja un error 3075, pero las unicas referencias que he encontrado para solucionarlo son para SQL y no para Visual Basic... si alguien puede explicarme como solucionarlo... se lo agradeceriaPrivate Sub CmdFiltro_Click() Dim VarFiltro As String If Nz(Me.Combo1, "") = "" And Nz(Me.Combo2, "") = "" Then MsgBox "Seleccione al menos una campo en alguno de los combos de Seleecion de campos", vbInformation, "CAMPOS SIN SELECCIONAR" Exit Sub End If If Nz(Me.Texto1, "") = "" And Nz(Me.Texto2, "") = "" Then MsgBox "Introduzca al menos una criterio en alguno de los Cudros de texto", vbInformation, "CAMPOS SIN CRITERIO DE BUSQUEDA" Exit Sub End If 'En este caso, se usaran los dos combos para la busqueda If Nz(Me.Combo1, "") <> "" And Nz(Me.Combo2, "") <> "" And Nz(Me.Texto1, "") <> "" And Nz(Me.Texto2, "") <> "" Then If Nz(Me.Operador, "") = "" Then MsgBox "Seleccione en el combo Operador un criterio de busqueda", vbInformation, "SIN OPERADOR" Exit Sub Else 'Construimos el filtro VarFiltro = Me.Combo1 & " like '*" & Me.Texto1 & "*' " If Me.Operador.Column(1) = "NOT" Then VarFiltro = VarFiltro & " AND " & Me.Combo2 & " NOT LIKE '*" & Me.Texto2 & "*'" Else VarFiltro = VarFiltro & Me.Operador.Column(1) & " " & Me.Combo2 & " LIKE '*" & Me.Texto2 & "*'" End If End If Else 'Solo aplicaremos el filtro sobre el operador que esten rellenos los dos controles If Nz(Me.Combo1, "") <> "" And Nz(Me.Texto1, "") <> "" Then VarFiltro = Me.Combo1 & " LIKE '*" & Me.Texto1 & "*'" ElseIf Nz(Me.Combo2, "") <> "" And Nz(Me.Texto2, "") <> "" Then VarFiltro = Me.Combo2 & " LIKE '*" & Me.Texto2 & "*'" Else MsgBox "No se aplicara ningun filtro", vbInformation, "SIN FILTRO" End If End If 'Aplicamos el filtro Me.NombreTabla.Form.Filter = VarFiltro Me.NombreTabla.Form.FilterOn = True End Sub Private Sub Comando15_Click() Me.NombreTabla.Form.Filter = "" Me.NombreTabla.Form.FilterOn = False End Sub
JOKEROBSCURO