Hallo werte Access-Community,
ich habe ein Endlosformular das auf einer Abfrage basiert. In diesem Formular wird über mehrere Textfelder die Abfrage gefiltert und angezeigt. Danach kann über einen Button ein Bericht erzeugt werden der einen Bericht erstellt und die Filterkriterien übernimmt.
Der Code des Buttons ist:
Private Sub cmd_Report_Click()
DoCmd.OpenReport "rpt_Kosten", acViewPreview, , _
IIf(Me.FilterOn, Me.Filter, Null)
End Sub
Jetzt meine Frage ist es möglich über ein Text oder Listenfeld alle Suchbegriffe im Bericht anzuzeigen?
Das soll zur Übersichtlichkeit dienen. Ich möchte im nachhinein gerne sehen wonach ich gefiltert habe wenn ich mir den Bericht ausdrucke.
Ich habe es folgenden Code mal probiert aber mit mäßigem Erfolg:
Me.meinTextfeld = Me.Filter
Ich habe nicht viel Erfahrung mit VBA und weiß nicht wie ich das umsetzen soll.
Mit freundlichen Grüßen
Churian
Hallo,
übergib die IIF-Bedingung auch als Openargs-Parameter und weise beim Berichts-Ereignis "Beim Öffnen" dieses Öffnungsargument einem Textfeld zu:
Private Sub cmd_Report_Click()
DoCmd.OpenReport "rpt_Kosten", acViewPreview, , _
IIf(Me.FilterOn, Me.Filter, Null),,IIf(Me.FilterOn, Me.Filter, Null)
End Sub
Sub Report_Open(Cancel As Integer)
Me!txtFilterkrit = Me.Openargs
End Sub
Hey,
wenn ich den oberen Teil also:
Private Sub cmd_Report_Click()
DoCmd.OpenReport "rpt_Kosten", acViewPreview, , _
IIf(Me.FilterOn, Me.Filter, Null),,IIf(Me.FilterOn, Me.Filter, Null)
End Sub
in mein on-click-Ereignis des Knopfes im Formular eingebe und den unteren:
Sub Report_Open(Cancel As Integer)
Me!txt_FilterKrit = Me.Openargs
End Sub
im Bericht bekomme ich eine Fehlermeldung: 2448 - "Sie können diesem Objekt keinen Wert zuweisen."
Ich habe ein normales ungebundenes Textfeld benutzt.
Grüße
Churian
Hi,
die Zuweisung darfst du erst im Format- (oder Print-) Ereignis des zum Textfeld gehörigen Berichtsbereichs vornehmen.
Hallo Maggie,
das Textfeld ist im Berichtskopf und dort habe ich "beim Formatierten" folgendes eingegeben:
Private Sub Berichtskopf_Format(Cancel As Integer, FormatCount As Integer)
Me!txt_FilterKrit = Me.OpenArgs
End Sub
das klappt so aber auch nicht. Das Textfeld bleibt leer.
Wo liegt der Fehler?
Grüße
Hi,
öffnest du den Bericht denn in der Seitenansicht oder druckst du ihn sofort aus?
In der Berichtsvorschau ("Berichtssicht") greifen diese Ereignisse nämlich nicht.
Guten Morgen,
mit "Berichtsvorschau" meinst du die Seitenansicht richtig? Ich öffne den Bericht als Seitenansicht und könnte ihn dann sofort drucken. Auf dem Bildschirm in der Seitenansicht müsste ich die Suchbegriffe auch nicht unbedingt sehen aber wenn ich einen Bericht ausdrucke und abhefte wäre es hilfreich später noch nachvollziehen zu können wie gefiltert/ wonach gesucht wurde.
Liebe Grüße
Churian
Hallo,
nimm statt dem Open-Ereignis das Load-Ereignis..:
Sub Report_Load()
Me!txtFilterkrit = Me.Openargs
End Sub
Das Textfeld zum Anzeigen des Kriteriums heißt auch wirklich "txt_Filterkrit"?
Hey ho,
das klappt perfekt. Ja der Name des Feldes stimmte. Könnt ihr mir erklären wo der Fehler lag?
Mit freundlichen Grüßen
Churian
Hi,
Zitat von: Churian am Juli 09, 2015, 07:12:45mit "Berichtsvorschau" meinst du die Seitenansicht richtig?
nein, eben nicht, es gibt die Berichtssicht und die Seitenansicht, das sind zwei verschiedene Sichten.
ZitatKönnt ihr mir erklären wo der Fehler lag?
Es war das falsche Ereignis, im Open kannst du noch nicht auf die Steuerelemente zugreifen.
Aber im Berichtskopf_Format hätte es klappen müssen. Was steht denn im Register Format unter Standardansicht bei dem Bericht?
Moin,
da steht Berichtssicht. Im Load-Ereignis klappts auf jedenfall sehr gut.
Grüße