Quiero aplicar un filtro a un formulario desde visual basic mediante un evento cuando habrá el formulario. Mi problema es cuando quiero filtrar los datos mediante dos campos del formulario, no se que operador utilizar.
No estoy seguro, pero creo que el operador tendría que ser Or (O), hay algunas formas de aplicar filtros al formulario, lo siguiente se basa en una tabla clientes y un form dependiente clientes: 1.- Añade en la sección declaraciones del formulario Clientes el siguiente subprocedimiento: Sub EstablecerFiltro() Dim frm As Form, cadMsg As String Dim cadInput As String, cadFiltro As String ' Abrir el formulario Productos en la vista Formulario. DoCmd. OpenForm "ClientesA" ' Devolver variable de objeto Formulario que apunta a formulario Productos. Set frm = Forms!ClientesA cadMsg = "Introduzca una o más letras del IdCliente" _ & " seguidas por un asterisco. O sin *" ' Indique al usuario que introduzca las letras. cadInput = InputBox(cadMsg) 'aqui podrias probar lo del Or con un cadInputX ' Construir la cadena de criterios. cadFiltro = BuildCriteria("IdCliente", dbText, cadInput) ' Establecer propiedad Filtro para aplicar Filtro. frm.Filter = cadFiltro ' Establecer la propiedad ActivarFiltro; el formulario muestra ahora los registros filtrados. frm.FilterOn = True End Sub 2.- Ánade un botón de comando para llamar al Sub Al hacer click, y le pones: Call EstablecerFiltro (pasa a vista formulario y prueba el procedimiento). Esto seria desde el mismo formulario, si añadiésemos dos InputBox cada uno con su cadFiltro estaríamos usando dos criterios de filtrado (sin usar ningún Operador). Yo creo que lo más cómodo es aplicar directamente el filtro por formulario NOTA: falta añadir un controlador de error al sub para el caso de Cancelar.