La manera más simple que sé es construir una función que pueda construir su secuencia del filtro, y después llama esa función siempre uno de sus controles de los criterios de búsqueda es actualizado. Por ejemplo:
Función BuildSearch ()
sFilter dévil como secuencia
Si "" de Nz (Me.cboDeviceType, "" <> ) entonces
sFilter = “DeviceType=” y Me.cboDeviceType
Terminar si
Si "" de Nz (Me.cboUserName, "" <> ) entonces
Si Len (sFilter) > 0 entonces sFilter = sFilter y “Y”
sFilter = sFilter y “UserName='" y Me.cboUserName y “'”
Terminar si
Me.YourSubformControl.Form.filter = sFilter
Me.YourSubformControl.Form.FilterOn = verdad
Función del final
Ahora apenas llamar esa función de sus controles:
Sub el cboDeviceType_AfterUpdate ()
BuildSearch
Submarino del extremo
Algunas extremidades:
Las secuencias del filtro no son nada SQL más que válido DONDE las cláusulas sin la palabra “DONDE”, así que usted debe seguir las mismas reglas:
Incluir los valores del texto en cotizaciones simples o dobles: el “UserName='" y Me.cboUserName y “'” es rodeado por apóstrofes
Incluir los valores de la fecha en marcas índice: “DateLoaned=#” y Me.txDateLoaned y “#”
Cerciorarse de que usted refiera correctamente a su control de Subform. Éste es el CONTROL en su forma principal que reciba la forma que usted está utilizando como subform. Los mayo o mayo no ser nombrado iguales que la forma que usted está utilizando como subform (es decir el “objeto de la fuente”), tenga tan cuidado al referir a ese control.