A maneira que a mais simples eu sei é construir uma função que possa construir sua corda do filtro, e chama então essa função quando um de seus controles dos critérios de busca é atualizado. Por exemplo:
Função BuildSearch ()
sFilter não ofuscante como a corda
Se "" de Nz (Me.cboDeviceType, "" <> ) então
sFilter = “DeviceType=” & Me.cboDeviceType
Terminar se
Se "" de Nz (Me.cboUserName, "" <> ) então
Se Len (sFilter) > 0 então sFilter = sFilter & “E”
sFilter = sFilter & “UserName='" & Me.cboUserName & “'”
Terminar se
Me.YourSubformControl.Form.filter = sFilter
Me.YourSubformControl.Form.FilterOn = retificam
Função do fim
Agora apenas chamar essa função de seus controles:
Sub o cboDeviceType_AfterUpdate ()
BuildSearch
Submarino da extremidade
Algumas pontas:
As cordas do filtro não são nada SQL mais do que válido ONDE cláusulas sem a palavra “ONDE”, assim que você deve seguir as mesmas réguas:
Encerrar valores do texto em únicas ou citações dobro: o “UserName='" & Me.cboUserName & “'” são cercados por únicas citações
Encerrar valores da data nas insígnias: “DateLoaned=#” & Me.txDateLoaned & “#”
Certificar-se de que você refere corretamente seu controle de Subform. Este é o CONTROLE em seu formulário principal que hospeda o formulário que você se está usando como um subform. Pode ou não pode ser nomeado o mesmos como o formulário você está usando como um subform (isto é da “o objeto fonte”), seja assim cuidadoso ao referir esse controle.