Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Textfeldinhalt aus Formular als Filter für Bericht verwenden

Begonnen von mad, Februar 13, 2019, 02:48:42

⏪ vorheriges - nächstes ⏩

mad

Hallo Zusammen,

ich habe ein Formular das mir alle Namen (Lname) anzeigt die zu einem bestimmten Lehrgang (Llehrg) angemeldet sind. Die Datenherkunft des Formulars ist die Abfrage (qryregLehrg). Auf der selben Abfrage gibt es auch einen Bericht dazu. Diesen Bericht öffne ich per Bottom aus dem Formular mit nachfolgendem Code:
Private Sub btnberLehrg_Click()
On Error GoTo Err_Vorschau__berLehrgTN_Click
    Dim stDocName As String
    stDocName = "berLehrgTN"
    DoCmd.OpenReport stDocName, acPreview

Exit_Vorschau__berLehrgTN:
    Exit Sub

Err_Vorschau__berLehrgTN_Click:
    MsgBox Err.Description
    Resume Exit_Vorschau__berLehrgTN
End Sub


Nun würde ich gerne den Bericht beim öffnen wie folgt filtern wollen. Wenn ich im Formular mit dem Curser bei einem bestimmten Namen in der Spalte (Lname) stehe oder in der Spalte (Llehrg) eine bestimmte Lehrgangsbezeichnung auswähle bzw. mit dem Curser stehe, sollen entweder nach dem Lname gefiltert werden und alle Lehrgänge angezeigt werden für die die Person gemeldet ist, oder eben der Lehrgang angezeigt wird mit allen Personen die dazu gemeldet sind.
Mir ist bewußt das die Abfragen auch über Parameter abgefragt/gefiltert werden könnten. Dann müsste ich aber immer zwei Parameterwerte bzw. "*" eingeben. Das möchte ich aber nicht. Sondern mir wäre lieber, wegen der Fehlerquelle der Schreibweise, dass das filtern über den Code beim Bericht öffen erfolgt. Ich hoffe das geht überhaupt.
Wie wäre denn die konkrete (ergänzende) Schreibweise des obigen Codes.

Danke für eventuelle Unterstützung.

Gruss
mad

DF6GL

#1
Hallo,

z. B., wenn der Bericht auf Basis der Formular-Abfrage aufgebaut ist und die gleichen gefilterten DS wie das Formular anzeigen soll:

DoCmd.OpenReport stDocName, acPreview, , Me.Filter


Ansonsten muss das Kroiterium entspr. den Anforderung zusammengesetzt und beim Where-Condition-Parameter der OpenReport-Methode übergeben werden.

mad

Hallo,
grundsätzlich zeigt der Bericht die gleichen DS wie das Formular.

Wie beschrieben möchte ich jenachdem wo der Corser steht nach dem entsprechendem Eintrag filtern.
Alternativ wäre das filtern der DS im Formular auch oK, und ein anschliessendes übergeben an den Bericht.
Wie müsste ein Filtern im Formular gemacht werden?

Gruss
mad

DF6GL

Hallo,

wenn Du meinst:  Beim Doppelklick auf ein Textfeld  die Datensätze des Formulars  nach dem Inhalt dieses Textfeldes zu filtern, dann etwa so,
wobei der Name des Formular-Textfeldes dem daran gebundenen Tabellenfeldnamen (hier vom Datentyp "Text" angenommen) entspricht:

Sub MeinTextfeld_Doppelclick()
Me.Filter = "MeinTextfeld = '" & Me!MeinTextfeld & "'"
Me.FilterOn=True
End Sub

mad