Formular für wiederkehrende Prüfung

Danke für deine Hilfe. Ich denke VBA werde ich erst mal hinten anstellen. Zu erst muss ich mal mit der Access-Kiste soweit kommen, dass ich da ohne viel Hilfe klar komme.
 
Werbung:
Guten morgen, ich hab jetzt tatsächlich soweit alles hin bekommen und bin sehr glücklich. Eine Frage zur Auswertung über den Bericht hab ich noch. Sollte ich dazu auch erst eine Abfrage basteln auf die ich den Bericht stütze oder kann ich den einfach über die Vorhandenen laufen lassen? Dabei stellt sich mir noch die Frage, wie ich den Bericht so "filtern" kann, dass ich nur das aktuelle Jahr auswerten kann.

EDIT: ich glaube, ich habs selbst rausgefunden. Wahrscheinlich nicht die "beste" Lösung, aber scheint zu gehen.
 
Zuletzt bearbeitet:
Guten Morgen,
durch die Frage "filtern" hast Du die Antwort schon selbst gegeben. Möglichts immer für Formulare und Berichte Abfragen verwenden. Access macht intern im Übrigen auch nichts anderes. Wenn Du mal bei einem generierten Formular in die Eigenschaften schaust, wirst Du sehen, dass in der Zeile Datenherkunft eine Select-Anweisung geschrieben wurde. Da ich selbst kein SQL-Freak bin, habe ich mir auf diese weise zumindest grundlegende Kenntnisse in SQL angeeignet.
 
Moin, ich hab grade in einem Video zu Access etwas gesehen, was ich gern übernehmen wollen würde, leider finde ich keine Erklärung dazu. Es geht um ein Formular, welches eine Abfrage filtert und daraus einen Bericht erstellt. Natürlich weiß ich mittlerweile, wie man Formulare, Abfragen und Bericht erstellt, aber wie ich die zusammen bekomme, hab ich noch nicht raus finden können
 
Moin,
nehme ein leeres Formular, ohne Datenquelle und platziere die Suchriterienfelder als ungebundene Felder. Gebe ihnen sprechende Namen, damit Du sie dann in Deiner Abfrage als Kriterien ansprechen kannst. (Vermeide dabei aber reservierte Wörter wie "Datum" oder "Name" und deren englische Pendants.)
Dann erstellst eine Abfrage, die die Felder enhält, die später auf dem Bericht stehen sollen. In der Zeile "Kriterien" kannst Du nun die Felder des Formulars angeben um die Datensätze zu filtern. Um diese Verweise herzustellen benutzt Du am einfachsten den "Aufbauen-Assistenten" (rechte Maustaste im Kriterienfeld). Da Du mehrere Zeilen Kriterien angeben kannst, lassen sich auch beliebige Und/Oder-Verknüpfungen zwischen den Kriterien aufbauen. (Das muss man einfach mal probieren um ein Gefühl dafür zu bekommen.)
Bringt die Abfrage über die Eingabefelder des Formulars (was bei Aufruf der Abfrage geöffnet sein muss) das gewünschte Ergebnis, kannst Du den Bericht mit dem Berichtsassistenten generieren. Dabei nimmst Du die Abfrage als Datenquelle.
Um den Bericht dann aufzurufen setzt Du einfach einen Startbutton, der den Bericht startet, in dein Formular. Auch das geht simpel mit dem Entwurfsassistenten.

Das Entscheidene bei der ganzen Sache ist, das Du Dir mal das Objektmodell von Access anschaust. Denn Formulare, Abfragen, Berichte, sowie deren Inhalte wie Felder, Buttons, Bilder, etc. sind alles Objekte, die Eigenschaften haben, die man ansprechen und ändern kann. Weiterhin haben sie Methoden, die man ausführen kann.
Die Feldnamen eines Formulars spricht man z.B. mit
Code:
Formulare!Formularname!Feldname
an. (In VBA später dann auf Englisch)
Das siehst Du dann auch in deinen Kriterienfeldern der Abfrage, wenn Du den Aufbauassistenten genutzt hast.

Viel Spaß beim Entdecken der Welt der Access-Objekte.
 
Im Moment bin ich noch zu blöd, deine Anleitung um zu setzen :(
Ich versuch es trotzdem mal weiter. Eigentlich kann es ja nicht so schwer sein, oder
 
EDIT: Ich bin einen Schritt weiter gekommen. Die Abfrage lässt sich über das Formular "filtern".

Vielen vielen Dank für den Support hier. Bin euch wahnsinnig dankbar
 
Jetzt habt ihr mich doch noch zu VBA gebracht 😁 hab mir schon ein bisschen hin gefummelt, aber leider komm ich jetzt an ner Stelle nicht weiter und hoffe, dass ich euch noch mal auf den Keks gehen darf.

Ich hab ein Formular erstellt mit dem ich meine Ergebnisse filtern und über eine Schaltfläche eine Abfrage zu dem Filter erstellen kann. Sobald ich die erstellt habe, kann ich über ne zweite Schaltfläche aus der Abfrage einen Bericht erstellen. Klappt bisher einwandfrei. Leider bekomme ich die dritte Schaltfläche nicht hin. Diese soll den Bericht als PDF exportieren. Aber nicht einfach so, sondern die Datei soll den Namen des Berichts, den ich dynamisch aus dem Filter erstellen lasse, haben. Aber VBA macht mir da nen Strich durch die Rechnung

DoCmd.OutputTo acOutputReport, "rep_Befundung", acFormatPDF, "d:\" & [Reports]![rep_Befundung]![txt_headline_rep] & ".pdf", False, , , acExportQualityPrint
Diesen Code hab ich jetzt schon in zig Varianten probiert aber ich komm nicht weiter.

Vielen Dank mal wieder
 
Hallo,
die Reportausgabe als pdf kann einen manchmal wirklich zur Verzweiflung bringen, weil die Verzeichnisverwaltung von Window/Access einem einen Strich durch die Rechnung macht. Denn wenn man z.B. direkt unter C:\ speichern möchte, benötigt man Adminrechte. Der Reportexport als PDF klappt dann nicht. Auch Sonderzeichen im Datei- oder Pfadname, etc. werden nicht unbedingt richtig interpretiert.

Ich gebe PDFs grundsätzlich nur mit dem Reportname als Dateiname aus. Dann legt Access die PDF in das Arbeitsverzeichnis der DB. Auch dabei muss die Dateierweiterung .PDF groß geschrieben werden damit es funzt. In einem weiteren Schritt kopiere ich die PDF dann mit FileCopy dahin, wohin ich sie haben möchte.

Code:
Private Sub Button_PDF_Click()
On Error GoTo err_pdf
  Dim Dateiname As String
  Dim Zieldatei As String
  Dateiname = Application.CurrentProject.Path & "\Reportname.PDF"
  Zieldatei = "C:\users\an\ReportnameZiel.PDF"
  DoCmd.OutputTo acOutputReport, "Reportname", acFormatPDF, Dateiname
  FileCopy Dateiname, Zieldatei
  Kill Dateiname
  Msgbox ("Report wurde als PDF exportiert: " & Zieldatei)
  goto noerr
err_pdf:
  Msgbox "Fehler PDF-Ausgabe" & " " & Err.Number & " " & Err.Description
noerr:
   on error goto 0  
End Sub
 
Danke für deine Ausführung. Ich hatte schon gelesen, dass es mit dem Export nach PDF nicht so einfach sein soll, allerdings dachte ich, dass es in den Griff zu bekommen sei.

Ich hab deinen Code mal eingebaut, aber leider ohne Erfolg. Das Kuriose ist, ich bekomme gar nichts. Keinen Fehler oder dergleichen. Er schreibt keine Datei nirgendwo hin. Ich hatte auch mal irgendwo gelesen, dass der Bericht bei DoCmd nicht geöffnet sein darf. Aber auch, wenn ich ihn schließe, komme ich zu keinem Ergebnis.

Grundsätzlich verstehe ich den VBA Code, den du mir geschickt hast, ich hab nur das Gefühl, mein Access versteht ihn nicht
 
Das kann eigentlich nicht sein, es sei denn, Du hast irgendwo die Systemmeldungen ausgeschaltet (Set Warnings.on = False) und sie nicht wieder eingeschaltet. Ich glaube nicht, dass die PDF irgendwo ins Nirwana verschwindet oder gar nicht erzeugt wird, ohne eine Fehlermeldung.
Hast Du mal einen Haltepunkt gesetzt und beim Einzelschrittdurchlauf mit F8 die Variablen angeschaut? Entweder die Prozedur läuft normal durch oder sie springt bei welcher Zeile zum Fehlerausgang?
 
Wenn Du nichts findest, kannst Du ja nochmal eine abgespeckte Version der DB hier hochladen.
Ich bin jetzt an einem Punkt, an dem es nicht mehr so einfach ist, die DB hier rein zu stellen. Dafür sind da schon zu viele "Firmeninterna" eingebaut. Denke ich muss dann so klar kommen.

Versuche grade die DB auf nem anderen PC zu testen.
 
Werbung:
Ich fürchte, ich hab den Fehler gefunden. Es scheint so, als hätte mein Unternehmen ne ganze Menge Sachen bei der Installation von Office gesperrt. Komischerweise komme ich mit Makros weiter, aber VBA scheint nicht zu gehen.

Besteht die Möglichkeit, die VBA Geschichte auch mit Makros zu machen? Ja, Makros sind ungeil, aber wenn es nicht anders geht, muss ich mir so helfen.
 
Zurück
Oben