PDA

Vollständige Version anzeigen : Gleicher Filter im Bericht wie im Formular verwenden


<GW>
05.01.2002, 12:24
Hallo

In einem Formular Kassenbuch verwende ich einen Filter mittels Kombinationsfeldes um nach besteimmten Kontonummern zu filtern. Das klappt alles wunderbar. Jetzt meine Frage. Wie kann ich diesen Filter in den Bericht übernehmen. Ich möchte das im Bericht nur die Datensätze angezeigt bzw. geduckt werden wie im Formular.

A.S.
05.01.2002, 12:49
Hallo GW,

wie sieht denn die Filtereinstellung Deines Formulars aus?

Wenn Du nicht mit direkten Bezügen arbeitest, sollte es reichen, wenn Du das Filterkriterium der DoCmd.OpenReport-Anweisung auf den Formularfilter einstellst.

Gruß

Arno

<GW>
05.01.2002, 15:08
Hallo

Zuerst mal vielen dank für die prompte Antwort.

Um den Filter im Formular rofe ich beim Klicken folgende Ereignisprozedur auf

Private Sub KTO_filter1_Click()
If Me.Kto_filter1 = 0 Then
'Filter deaktivieren'
Me.Filter = False
Else
Me.Filter = "Konto Like'" & Me.Kto_filter1 & "*'"
Me.FilterOn = True
End If

End Sub

Den Bericht möchte ich aus dem Formular mit einem Button mit folgender Ereignisprozedur starten.

Private Sub Befehl85_Click()
On Error GoTo Err_Befehl85_Click

Dim stDocName As String

stDocName = "Kassenbuch 2"
DoCmd.OpenReport stDocName, acNormal

Exit_Befehl85_Click:
Exit Sub

Err_Befehl85_Click:
MsgBox Err.Description
Resume Exit_Befehl85_Click

End Sub

Wo muß ich den Filter für den Bericht aufrufen.

A.S.
05.01.2002, 15:16
Hallo GW,

in dem Fall sollte es IMHO ausreichen, wenn Du den Reportaufruf um einen Parameter erweiterst:

DoCmd.OpenReport stDocName, acNormal, Me.Filter

Das übergibt den von Dir in der Filter-Eigenschaft eingestellten (oder auch gerade deaktivierten) Filter an den gewünschten Report. Da Du den Filter ja nicht mit einem Formularbezug, sondern mit absoluten Werten erstellst, sollte das klappen.

Gruß

Arno

<GW>
05.01.2002, 16:17
Hallo Arno

Habe es versucht klappt nicht

A.S.
05.01.2002, 17:29
Hallo GW,

sorry, hatt ein Komma vergessen. Der Parameter an wessen Stelle der Filter jetzt übergeben wurde, gibt einen Filternamen und keine Filterbedingung - welche ja im Formularfilter enthalten ist. Also

DoCmd.OpenReport stDocName, acNormal, ,Me.Filter

Gruß

Arno

<GW>
05.01.2002, 18:24
Hallo

Herzlichen Dank es hat geklappt. Mit diesem Problem beschäftige ich mich schon monatelang.
Im Nachhinein ist das ganz einfach.
Nochmals Danke.

MAW
05.01.2002, 19:26
Hallo

Zu dem oben diskutierte Thema habe ich noch eine ergänzende Frage. Die Übertragung der im Formular angwandten Filterkriterien sind mit den VB-Code
docmd.openreport "..,..,me.filter,me.filter" bekannt.
Wie bewerkstellige ich jedoch, dass der "Auswahlbasierte Filter" auch in den Bericht übernommen wird. :confused:
Habe schon alles mögliche versucht, für eine Lösung oder irgendwelche Ideen wäre sich dankbar.

Grüße Marco

A.S.
05.01.2002, 19:37
Hallo Marco,

habe es gerade einmal ausprobiert und mußte feststellen (A97) das der auswahlbasierte Filter ebenso in die Eigenschaft Filter des Formulars übertragen wird.

Erst beim schließen des Formulars wird der Filter wieder zurückgesetzt.

Beim Aufruf des Formulars dürfte der Filter dementsprechend auch übergeben werden.

Du hast allerdings die Befehlssequenz

DoCmd.OpenReport "Reportname", acNormal, Me.Filter, Me.Filter

angegeben. An der Postion des ersten Me.Filter wird ein Filtername übergeben. Den Inhalt der Filter-Eigenschaft des Formulares wirst Du doch mit Sicherheit nicht im Report als Filtereinstellung gespeichert haben, oder? ;) ;)

Setze statt dessen einmal die Sequenz

DoCmd.OpenReport "Reportname", acNormal, , Me.Filter

ein.

Das sollte Funktionieren.

Gruß

Arno

MAW
05.01.2002, 20:44
Hallo Arno

Zunächst einmal vielen Dank für die schnelle Antwort.

Nun funktioniert zwar die Übertragung des "Ausw. Filter" auf den Bericht <img src="graemlins/top.gif" border="0" alt="[Finger hoch]" /> , allerdings wenn kein "Ausw. Filter" angewandt wird und die Darstellung im Formular ausschließlich auf der im Rahmen der Abfrage (darauf basieren Form und Report)selektierten Daten erfolgt, wird im Bericht nichts angezeigt :confused: (Die Bedingungen für Abfrage erhält Access über ein in einem Drop-Down-Menü gewähltes Kriterium).
Das Formular zeigt auch die nach der im Drop-Down-Menü gesetzten Bedingung gefilterten Daten an, nur der Bericht bleibt leer (erst wenn ich auf irgendein Element den auswahlbasierten Filter anwende, werden die Daten vom Formular im Bericht angezeigt).

Im Berichtsentwurf selber sind keine Filterwerte gesetzt. Für jede weitere Hilfe bin ich dankbar :)

Grüße
Marco

A.S.
05.01.2002, 20:55
Hmmm... scheinbar scheint in dem Fall der Filter zu stören.

Ich gehe davon aus, das Formular und Bericht auf der selben Abfrage basieren.

Bau einmal eine kleine Weiche in Dein Coding ein:

If Trim("" & Me.Filter) = "" Then
DoCmd.OpenReport "Reportname", acNormal
Else
DoCmd.OpenReport "Reportname", acNormal, , Me.Filter
End If

Irgendwie scheint in Deinem Filter doch etwas drin zu stehen, was den Bericht dann beeinflußt bzw. zu dem Ergebnis "keine Daten" kommen läßt.

Gruß

Arno

MAW
05.01.2002, 21:20
Deine Antworten sind ja suuuuperschnell. <img src="graemlins/top.gif" border="0" alt="[Finger hoch]" />

Die IF-Schleife hat mir leider nicht weitergeholfen, aber war eine super Idee. Ich muß noch mal den Code überprüfen. Wahrscheinlich liegt dort mein ganzes Problem. Es ist nämlich so, dass der Anwender aus dem Drop-Down-Menü auch die Möglichkeit wählen kann, nach einem anderen Kriterium (als die im D.-D.-Menü aufgeführten) zu suchen. Wählt man diese Option erscheint ein weiteres Eingabefeld: Trägt man dort das Kriterium ein erfolgt die Anzeige der selektierten Daten richtig, sowohl im Formular als auch im Bericht. Ich probier jetzt mal einiges aus, wenn's dann immer noch nicht klappt ... <img src="graemlins/weinen.gif" border="0" alt="[weinen]" />

Grüße Marco

Frank123
31.01.2002, 20:55
Hallo,

ich möchte zu dem Beitrag noch etwas wissen, wenn ich über eine Suchfunktion Datensätze suche und in einem Endlosformular anzeige(Forms!frmAuftrag_Ü.RecordSource = SQL) ist nichts im Filter.

Wie kann ich trozdem ein Bericht öffnen und die die gefilterten Daten anzeigen?

Frank