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
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.
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
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
Danke,
genau das Richtige.
Gruss
mad