Frage : Unterstützung mit der Entstörung eines Reports von einer Form benötigen

Ich habe eine Frage über filternreports von einer Form. Ich habe z.Z. eine Form, die 3 kombinierte Kästen und ein subreport umfaßt. Der erste kombinierte Kasten wählt die Tabelle vor, um anzusehen und bevölkert den zweiten kombinierten Kasten. Die Sekunde erlaubt Ihnen vorzuwählen, die auffangen, um zu filtern, und bevölkert auch das Drittel mit Werten von der gegebenen Tabelle/vom Feld. Der dritte kombinierte Kasten lässt Sie ein Einzelteil vorwählen und filtert dann den Report, der auf allen 3 kombinierten Kästen mit Hintereinanderschaltung basiert. (Tabelle-aufgefangene-notieren), wenn ich den dritten Kasten beende, filtert er alles im Report heraus und lässt nur eine unbelegte Aufzeichnung. Kann jemand mir mit diesem helfen? Ist hier der Code, den ich für die Form pflegte, um zu sehen, wie ich sie erfolgen lasse:
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:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
Option ausdrücklich

Privates VorcboReport_Change ()
    Schwaches strReport als Schnur
    
    'Variablen zuweisen
        strReport = Me.cboReport.Value
    
    'Bevölkert cboField mit den Wahlen, die auf cboReport basieren.
        Me.cboField.RowSource = strReport
        Me.cboField.RowSourceType = „Feld-Liste“
        Me.cboField.Value = ""
        Me.cboFilter.Value = ""
        Me.Refresh
    
    'Diese Aussage findet das vorgewählte Einzelteil im kombinierten Kasten und öffnet das jeweilige
    'im Vorreportbereich berichten.
        Wenn IsNull (cboReport.Value) dann
            Me.subReport.SourceObject = ""
        Sonst
            Wenn cboReport.Value = „Angestellter“ dann
                Me.subReport.SourceObject = „Report.rptEmployee“
            Sonst
                Me.subReport.SourceObject = „Report.rptInventory“
            Beenden wenn
        Beenden wenn
    
Unterseeboot beenden

Privates VorcboField_Change ()
    Schwaches strReport als Schnur, strField als Schnur, strFilter als Schnur

    'Variablen zuweisen
        strReport = Me.cboReport.Value
        strField = Me.cboField.Value
        strFilter = „AUSERWÄHLTES eindeutiges“ u. „[“ u. strReport u. „]“ u. „.“ u. „[“ u. strField u. „]“ u. „VON“ u. „[“ u. strReport u. „]“ u. „; “
        
    'Bevölkert cboFilter mit den Wahlen, die auf cboReport und cboField basieren.
        Me.cboFilter.RowSourceType = „Tabelle/Frage“
        Me.cboFilter.RowSource = strFilter
        Me.cboFilter.Value = ""
        Me.Refresh
        
Enden-Unterseeboot

Privates VorcboFilter_Change ()
    Schwaches strField als Schnur, strFilter als Schnur, strApply als Schnur
    
    'Variablen zuweisen
        strField = Me.cboField.Value
        strFilter = Me.cboFilter.Value
        strApply = „[“ u. strField u. „] =“ u. """ u. strFilter u. """
    
    'Vorgewählten Filter am subReport anwenden
        Me.subReport.Report.Filter = strApply
        Me.subReport.Report.FilterOn = richten aus
        Me.Refresh
        
Enden-Unterseeboot

Antwort : Unterstützung mit der Entstörung eines Reports von einer Form benötigen

Annehmen, dass alle Felder, die der Benutzer von in jeder dieser Tabellen vorwählen könnte, Text sind, Versuch:

strApply = „[“ u. strField u. „] = """ u. strFilter u. """"

Wenn alle Felder, die vorgewählt werden konnten, nicht Text sind, dann werden Sie eine Weise herausfinden müssen, das datatype des Feldes festzustellen, vor strApply verursachen.  Sie konnten eine Funktion wie das folgende verwenden:

Allgemeine Funktion FieldType (TableName als Schnur, Fieldname als Schnur) als ganze Zahl

    Schwaches strSQL als Schnur
    Schwache rs als DAO.Recordset
   
    strSQL = „VORWÄHLEN [“ u. Fieldname u. „] VON [“ u. TableName u. „] WO falsch“ ch
    strSQL = ersetzen (ersetzen (strSQL, „[[“, „["), „]]“, „] ")
   
    Rs = CurrentDb.OpenRecordset (strSQL, dbfailonerror) einstellen
   
    FieldType = rs. Felder (0). Art
    rs. Abschluss
    Rs einstellen = nichts
   
Funktion beenden

Und etwas wie dann tun:

intFieldType = FieldType (strReport, strField)
Fall intFieldType VORWÄHLEN
    Das dbBigInt, dbBoolean, dbByte, das cbCurrency, dbDecimal, dbDouble, dbFload, dbInteger, das dbLong umkleiden, dbNumeric
        strApply = „[“ u. strField u. „] =“ u. strFilter
    Fall dbChar, cbText, dbMemo
        strApply = „[“ u. strField u. „] = """ u. strFilter u. """"
    Fall dbDate, dbTime
        strApply = „[“ u. strField u. „] = #“ u. strFilter u. „#“
    Fall sonst
        msgbox „unerwartete Datenart =“ u. intFieldType
        'Dieses sollte alle Werte einschließen
        strApply = ""
Ende auserwählt

me.subReport.Report.Filter = strApply
me.subReport.Report.FilterOn = (strApply <> "")
Weitere Lösungen  
 
programming4us programming4us