Questione : Avere bisogno dell'assistenza con la filtrazione del rapporto da una forma

Ho una domanda circa i rapporti di filtrazione da una forma. Attualmente ho una forma che comprende 3 caselle combinate e un subreport. La prima casella combinata seleziona la tabella per osservare e popola la seconda casella combinata. Il secondo permette che selezioniate che sistemano per filtrare ed inoltre che popola il terzo con i valori dalla tabella/campo dati. La terza casella combinata lo lascia selezionare un articolo ed allora filtra il rapporto basato su tutte e 3 le caselle combinate con concatenazione. (tabella-campo-registrare) quando rifinisco la terza scatola filtrerà fuori tutto nel rapporto, lasciante soltanto un'annotazione in bianco. Può chiunque aiutarlo con questo? Qui è il codice che ho usato per la forma per vedere come la faccio fare: class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
>Option notpretty " del class= " del id= " codeSnippet792611 del
           
class= > " libero " del
soluzioni >Related class= title= " del href= " /Microsoft/Development/MS_Access/Q_26342160.html di I " del qRelatedChild " del class= delle caselle combinate e della forma " che ha un impulso errato con una forma e un boxes combinato

Risposta : Avere bisogno dell'assistenza con la filtrazione del rapporto da una forma

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 <> "")
Altre soluzioni  
 
programming4us programming4us