Anta, att alla sätter in att användaren kunde välja från i varje av dessa, bordlägger är text, försök:
strApply = ”[” & strField & ”] = """ & strFilter & """",
Om alla av sätter in, som kunde vara utvald, inte är text, då du går att måste att figurera ut a långt för att bestämma datatypen av sätta in, innan du skapar strApply. Du kunde använda en fungeranågot liknande efter:
Allmänhet fungerar FieldType (TableName som stränger, Fieldname som stränger) som heltal
Dunkel strSQL som stränger
Dunkla rs som DAO.Recordset
strSQL = ”VÄLJER [” & Fieldname & ”] FRÅN [” & TableName & ”] VAR falskt”,
strSQL = byter ut (byt ut (strSQL, ”[[”, ”[”), ”]]”, ”]”),
Fastställda rs = CurrentDb.OpenRecordset (strSQL, dbfailonerror)
FieldType = rs. Sätter in (0). Typ
rs. Nära
Fastställda rs = ingenting
Avsluta fungerar
Och gör därefter något som är lik:
intFieldType = FieldType (strReport, strField)
VÄLJ fallintFieldType
Case dbBigInt som är dbBoolean, dbByte, cbCurrencyen, dbDecimal som är dbDouble, dbFload, dbInteger, dbLong som är dbNumeric
strApply = ”[” & strField & ”] =” & strFilter
dbChar fall, cbText, dbMemo
strApply = ”[” & strField & ”] = """ & strFilter & """",
FalldbDate, dbTime
strApply = ”[” & strField & ”] = nr.” & strFilter & ”nr.”,
Fall annars
msgbox ”oväntad datatyp =” & intFieldType
'Alla detta bör inkludera värderar
strApply = "",
Avsluta valt
me.subReport.Report.Filter = strApply
me.subReport.Report.FilterOn = (strApply <> "")