Supor que todos os campos que o usuário poderia selecionar de cada um destas tabelas são o texto, tentativa:
strApply = “[” & strField & “] = """ & strFilter & """"
Se todos os campos que poderiam ser selecionados não são texto, a seguir você está indo ter que figurar para fora uma maneira de determinar o datatype do campo antes de criar strApply. Você poderia usar uma função como o seguinte:
Função pública FieldType (TableName como a corda, Fieldname como a corda) como o inteiro
strSQL não ofuscante como a corda
Rs não ofuscantes como DAO.Recordset
o strSQL = “SELECIONA [” & Fieldname & “] DE [” & TableName & “] ONDE falso”
o strSQL = substitui (substituir (strSQL, “[[”, “["), “]]”, “] ")
Ajustar rs = CurrentDb.OpenRecordset (strSQL, o dbfailonerror)
FieldType = rs. Campos (0). Tipo
rs. Fim
Ajustar rs = nada
Terminar a função
E fazer então algo como:
intFieldType = FieldType (strReport, strField)
SELECIONAR o intFieldType do caso
Encaixotar o dbBigInt, dbBoolean, dbByte, cbCurrency, dbDecimal, dbDouble, dbFload, dbInteger, dbLong, dbNumeric
strApply = “[” & strField & “] =” & strFilter
Caso dbChar, cbText, dbMemo
strApply = “[” & strField & “] = """ & strFilter & """"
dbDate do caso, dbTime
strApply = “[” & strField & “] = #” & strFilter & “#”
Caso mais
msgbox “tipo de dados inesperado =” & intFieldType
'Este deve incluir todos os valores
strApply = ""
Extremidade seleta
me.subReport.Report.Filter = strApply
me.subReport.Report.FilterOn = (strApply <> "")