Veronderstellend dat alle gebieden de gebruiker waaruit in elk van deze lijsten kon selecteren tekst zijn, probeer:
strApply = „[“ & strField & „] = """ & strFilter & """"
Als alle gebieden die zouden kunnen worden geselecteerd geen tekst zijn, dan gaat u een manier moeten berekenen om datatype van het gebied te bepalen alvorens strApply tot te leiden. U kon een functie als het volgende gebruiken:
Overheidsfunctie FieldType (TableName als Koord, Fieldname als Koord) als Geheel
Schemerige strSQL als Koord
Schemerige rs als DAO.Recordset
strSQL = „SELECTEER [“ & Fieldname & „] VAN [“ & TableName & „] WAAR Vals“
strSQL = vervang (vervang (strSQL, „[[“, „[“), „]]“, „]“)
Plaats rs = CurrentDb.OpenRecordset (strSQL, dbfailonerror)
FieldType = rs. Gebieden (0). Type
rs. Sluit
Plaats rs = niets
Beëindig Functie
En doe dan iets als:
intFieldType = FieldType (strReport, strField)
SELECTEER Geval intFieldType
Geval dbBigInt, dbBoolean, dbByte, dbNumeric dbDouble cbCurrency, dbDecimal, dbFload, dbInteger, dbLong,
strApply = „[“ & strField & „] =“ & strFilter
dbChar geval, cbText, dbMemo
strApply = „[“ & strField & „] = """ & strFilter & """"
Geval dbDate, dbTime
strApply = „[“ & strField & „] = #“ & strFilter & „#“
Geval anders
msgbox „Onverwacht gegevenstype =“ & intFieldType
'Dit men zou alle waarden moeten omvatten
strApply = ""
Uitgezocht eind
me.subReport.Report.Filter = strApply
me.subReport.Report.FilterOn = (strApply <> "")