Hallo zusammen
Ich habe ein Bericht für Journaleinträge die täglich gemacht werden. Tag später wird immer eine Zusammenfassung vom Vortag gemacht und als PDF abgelegt. Dies wird aktuell über die Filterfunktion vom Datum manuell gemacht und dementsprechend abgelegt.
Ich versuche seit geraumer Zeit diese Funktion über eine Schaltfläche für Datumfilter zu lösen, damit man nur per Schaltfläche aufgefordert wird ein Datum zu wählen, damit dann nur Einträge von dem Tag angezeigt werden. Bei allen Feldern geh das ja wunderbar, nur beim Datum mache ich etwas Falsch.
Wär echt froh wenn mir jemand helfen könnte.
Gruss Miro
Hallo,
zeige wie Du es mit dem Datum versucht hast.
Me.Filter = "Journaldatum Like '*" & Me!Journaldatum & "*'"
Me.FilterOn = True
So geht es wenn ich die Schaltfläche direkt ins Detailbereich setzte, ich will aber ein Button, dass mich fragt, welches Datum angezeigt werden soll.
Hallo,
erstelle im Formularkopf ein Kombinationsfeld zur Auswahl eines Datums aus den vorhanden Datensätzen. So können nur Datumswerte gewählt werden die es gibt und man kann sich nicht vertippen.
Datenherkunft für das Kombi:
SELECT DISTINCT Journaldatum FROM Daten ORDER BY Journaldatum DESC
Code für das Kombi:
Private Sub KombinationsfeldName_AfterUpdate()
Me.Filter = "Journaldatum =" & Format(KombinationsfeldName, "\#yyyy\-mm\-dd\#")
Me.FilterOn = True
End Sub
Ein Datumsfeld muss auf das ISO Format formatiert werden.
Wie soll ich den ein Kombifeld in einem Bericht einbauen. Die Methode funktioniert wunderbar in einem Formular.
Gruess Miro
Hallo,
das Kombi ist auch für den Bericht sinnvoll (über das Formular). Wie übergibst Du denn jetzt dem Bericht die zu druckenden Datensätze ?
Die werden aus der Tabellen abgeholt und in einem Bericht dargestellt. Im Bericht selbst bereite es den für die Endgültige Herausgabe. Dieser Vorgang variiert immer und ist nicht fix vorgegeben.
Hallo,
das ist keine Antwort die hilft.
Du musst doch dann dem Bericht auch den Filter übergeben, sonst werden ja alle DS gedruckt, wie wird das gemacht ?
Wie wird der Berichtsdruck gestartet ?
Hallo,
Zitatich will aber ein Button, dass mich fragt, welches Datum angezeigt werden soll.
wo soll sich dieser Button denn befinden? Warum wählst du das Datum nicht gleich im Formular aus?
Hallo,
ZitatWarum wählst du das Datum nicht gleich im Formular aus
Habe ich ihm doch vorgeschlagen (mit Kombi).
Angenommen ich habe in einem Bericht für 10 Tage je 10 Einträge . Sozusagen ein Gesamtbericht. Wenn ich jetz die Eintrge von Tag 3 weiterleiten möchte, dann lasse ich nur die Einträge von Tag 3 anzeigen und mache daraus eine PDF. Das mache ich aktuell indem ich Datumsfeld anwähle und über Filterfunktion nur die Einträge von dem Tag als Kriterium anwähle.Das möchte ich automatisieren indem ich auf eine Schaltfläche klicke und dann ein Datum eingebe/auswähle. Ohne das ich immer ein Feld anwählen muss und dann über "Filtern" oder die Rechte Maustaste gehen muss.
Nächster Schritt wär dann aus diesen 10 gefilterten Einträgen die nun angezeigt werden, diverse zusätzlich aus dem Filter rauszunehmen , da zum Beispiel 2 von den 10 Einträgen für die jeweilige Instanz nicht relevant sind. Das möchte ich direkt über die Benutzerfläche lösen ohne auf die Access Leiste zugreifen zu müssen da die nicht sichtbar ist da die Berichte im fullscreen angezeigt werden.
Hallo,
viel geschrieben und nichts beantwortet.
Wie wird jetzt gedruckt (Code) ?
Und wie übergibst Du jetzt dem Druckbefehl die zu druckenden 3 Tage ?
Der Berichtsdruck muss immer über ein Formular erfolgen.
Auch die weitere Filterung (wenn 2 DS rausfallen) muss über das Formular erfolgen in dem man z.B. die nicht zu druckenden DS anhakt und den Druck des Berichts mit
DoCmd.OpenReport ... startet.
Gedruckt wird gar nichts. Es wird eine PDF erstellt. Und die erstellt er nur mit Daten die im Bericht angezeigt werden. Die rausgefilterte Datensätze landen nicht in PDF.
Der Bericht hat nichts mit einem Formular zu tun. Über ein Formular werden die Daten nur in die Tabelle eingespiessen. Und aus der Tabelle mit dem Datensätzen wird ein Bericht generiert.
Wenn ich in dem Bericht jetzt ein Datum mit rechter maustaste anklicke und dann auf datumsfilter> Gleich... auswähle dann geht ein Fenster auf "Benutzerdefinierter Filter" und da kann ich ein Datum auswählen(Kalenderfunktion) und er zeigt mir dann alle DS von dem Tag. Das möchte ich ja über eine Schaltfläche lösen, ohne immer mit der rechte maustaste beim Datumsfeld gehen zu müssen.
Die weitere Filterung löste ich anschliessend, indem ich auf "ID" Feld klicken und oben in der menuleiste auf "filtern" drücke. dann geht beim Feld "ID" ein Fenster auf, wo ich Häckchen setzen kann, welche ID Datensätze ich anzeigen will.
Hallo,
sorry, aber ein Bericht wird gedruckt. Egal, ob mit Papier oder als PDF. Dass der Bericht nichts mit dem Formular zu tun hat, ist mir auch klar. Aber wenn Du den Bericht von Hand per Button (oder per Kombi) filtern willst, so brauchst Du dazu ein Formular. Dazu kann man das Eingabeformular verwenden oder ein extra Formular erstellen.
Und wenn Du zusätzlich noch manuell Daten ausfiltern willst, so wird im einfachsten Fall in der Tabelle noch ein Hakenfeld benötigt in dem im Formular die nicht zu druckenden DS angeklickt werden.
Mag sein dass meine Ausführung für Fragezeichen sorgt, trotzdem möchte ich es so belassen.
Eigentlich funktioniert alles so wie ich mir das wünsche. Ich brauche nur eine Schaltfläche die beim klicken den Befehl "Filtern" Aus der Menüleiste "Filtern und sortieren" auslöst. Damit ich auf die menüleiste verzichten kann und im Fullscreen arbeiten kann.
EDIT: Das mit zusätzlicher Filterung wurde gelöst auf eine einfache Art, indem ich beim ID Feld "beim klicken" DoCmd.RunCommand acCmdFilterMenu
@Klaus:
Zitat von: MzKlMu am November 27, 2016, 18:56:04Habe ich ihm doch vorgeschlagen (mit Kombi).
das was du gezeigt hattest bezog sich auf das Formular. Wie der Bericht mit Hilfe des Kombifeldes zu filtern ist, wurde da nicht gezeigt.
@mile85:
Füge für jedes Feld, nach dem der Bericht gefiltert werden soll, ein Text- oder Kombifeld im Formular hinzu, dann kannst du nach Auswahl der Parameter den Bericht mit Kriterium öffnen. Das nachträgliche Filtern des Berichts aus der Berichtsvorschau heraus entfällt dann.
Sieh dir dazu auch die Syntax des OpenReport-Befehls an.
PS:
Die Frage,
wie der Bericht geöffnet wird, hast du immer noch nicht beantwortet.
Bericht öffne ich direkt bzw. über die erstellte Benutzermaske per Schaltfläche openreport...
Es wird schwierig für die Felder die gefiltert werden sollen über ein Feld -> Abfrage zu filtern da es keine festgelegten Felder oder Kriterien gibt zum filtern. Das passiert dann visuel je nach Inhalt des Journals,deswegen will ich auch direkt im Bericht Anpassungen vornehmen ,welche ds letztendlich angezeigt werden solle.
Das eine Problem habe ich gelöst.fehlt jedoch der Wunsch beim Datum benutzerdefinierte Filtrierung gleich...
So wie ich es per Maus mache über die rechte Maustaste .bei andern Felder. Geht das ja wunderbar wie zB. Feld Schilderung des Vorfalls: habe ich eine Schaltfläche um nach Stichworten zu suchen und zu filtern
zB. beim Feld Name habe ich auch eine Schaltfläche um im Bericht nach dem Namen zu suchen
Dazu gibt es im Bericht eine Schaltfläche
Dim x As String
x = InputBox("Bitte den Namen eingeben")
Me.Filter = "[Name] LIKE '*" & x & "*'"
Me.FilterOn = True
Das Brauche ich zB wenn ich auf eine Beschwerde antworten will und den Journaleintrag dazu suche
Mit dem Code Funktioniert es auch, ich gebe da halt gewünschtes Datum in Textform ein über die Inputbox, und gewünscht ist es aber mit Inputbox wo man Datum per Kalender wählen kann.
Hallo,
ein Kombifeld funktioniert nicht in der Berichtsansicht...
Zitat von: DF6GL am November 28, 2016, 19:15:53
Hallo,
ein Kombifeld funktioniert nicht in der Berichtsansicht...
Wollte ich nie haben :). Stattdessen wie bereits beschreieben eine Schaltfläche mit Inputbox wo man Datum per Kalender auswählen kann, verbunden mit dem zu filterndem Feld mit "LIKE" Kriterium
Eine Inputbox ist halt eine Inputbox (https://dbwiki.net/wiki/Access_Design:Inputbox), und mehr als Du sehen kannst, kann sie nicht.
Man kann aber ein (PopUp)Formular optisch so gestalten wie die Inputbox (oder besser) und zusätzlich das mögliche Formularrepertoire nutzen. Typischerweise wird man aber gleich im aufrufenden Formular die Datumswahl vornehmen lassen und damit die Berichtsöffnung veranlassen. Aufspringende Nachfrageboxen sind immer unangenehm, je häufiger, um so schlimmer. Bedienerfreundlicher ist es, erst alle nötigen Auswahlen zu treffen und bei (geprüfter) Vollständigkeit den nächsten Schritt vorzunehmen.