Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/02/2010, 19:33
JOKEROBSCURO
 
Fecha de Ingreso: febrero-2008
Mensajes: 101
Antigüedad: 16 años, 9 meses
Puntos: 1
Problema: Boton en formulario

Hola, tengo el siguiente codigo que activa un boton en un formulario para aplicar un filtro

Código:
Private 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
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 agradeceria

JOKEROBSCURO