Supponendo che tutti i campi che l'utente potrebbe scegliere da ciascuna di queste tabelle sono testo, prova:
strApply = “[„ & strField & “] = """ & strFilter & """"
Se tutti campi che potrebbero essere selezionati non sono testo, quindi state andando dovere calcolare fuori un senso determinare il datatype del campo prima della generazione strApply. Potreste usare una funzione come quanto segue:
Funzione pubblica FieldType (TableName come stringa, Fieldname come stringa) come numero intero
strSQL fioco come stringa
Rs fiochi come DAO.Recordset
lo strSQL = “SELEZIONA [„ & Fieldname & “] A PARTIRE [„ & TableName & “] DOVE falso„
lo strSQL = sostituisce (sostituire (strSQL, “[[„, “["), “]]„, “] ")
Regolare i rs = CurrentDb.OpenRecordset (strSQL, dbfailonerror)
FieldType = rs. Campi (0). Tipo
rs. Fine
Regolare i rs = niente
Concludere la funzione
Ed allora fare qualcosa come:
intFieldType = FieldType (strReport, strField)
SELEZIONARE il intFieldType di caso
Mettere il dbBigInt, dbBoolean, il dbByte, il cbCurrency, dbDecimal, dbDouble, il dbFload, il dbInteger, dbLong, dbNumeric
strApply = “[„ & strField & “] =„ & strFilter
Caso dbChar, cbText, dbMemo
strApply = “[„ & strField & “] = """ & strFilter & """"
dbDate di caso, dbTime
strApply = “[„ & strField & “] = #„ & strFilter & “#„
Caso altrimenti
msgbox “tipo di dati inatteso =„ & intFieldType
'Questo dovrebbe comprendere tutti i valori
strApply = ""
Estremità prescelta
me.subReport.Report.Filter = strApply
me.subReport.Report.FilterOn = (strApply <> "")