¿Como filtrar un formulario con variables?
Tengo un formulario clásico de facturas "Registro_facturas", basado en una tabla "Facturas". Este formulario tiene entre otros 2 campos "Empresa" y "Centro1". Necesito que sólo se pueda acceder a los registros que contengan la Empresa del empleado y en el caso de tenerlo al Centro de trabajo de esa empresa. También tengo que tener en cuenta que algunos empleados puedan tener acceso a todos los registros (no estan asignados a una empresa en concreto ni a un centro). Para esto he generado una consulta desde el formulario "Registro_facturas" con el siguiente criterio en el campo [Empresa]:
SiInm(EsNulo([Formularios]![FChivato].[Texto6].[Valor]);[Empresa];[Formularios]![FChivato].[Texto6].[Valor])
y en el campo [Centro1]
SiInm(EsNulo([Formularios]![FChivato].[Texto2].[Valor]);[Empresa];[Formularios]![FChivato].[Texto2].[Valor])
Siendo Texto6, del formulario FChivato la Empresa del empleado (si tiene alguna asignada) y siendo Texto2, del formulario FChivato el Centro de trabajo del empleado (si tiene alguna asignada)
De esta manera funciona pero tarda muchísimo en abrirse el formulario.
Estoy intentadolo sin generar una consulta utilizando la propiedad del formulario Filtrar al cargar "si" y como filtro he probado poner solo el de la Empresa para empezar: [Empresa]=SiInm(EsNulo([Formularios]![FChivato].[Texto6].[Valor]);[Empresa];[Formularios]![FChivato].[Texto6].[Valor]) pero me da error de sintaxis.
Sin embargo cuando pongo en el filtro solo una parte:
[Empresa]=[Formularios]![FChivato].[Texto6].[Valor] and [Centro1]=[Formularios]![FChivato].[Texto2].[Valor] funciona pero sin tener en cuenta, claro esta, que alguno empleados puede que solo tengan asignados Empresa y no Centro1 y otros que no tengan asignados ni Empresa ni Centro1.
No se que habría que corregir en el filtro para que funcione o si sería mejor introducir algún tipo de código diferente en el evento abrir el formulario.