Hallo liebe Access-o-mania Gemeinde es geht mal wieder um Betriebsanweisungen,
Ich bin leider in VBA nicht so bewandert habe mich da aber mal belesen aber komme da nicht weiter.
Ich habe in einer Abfrage alle Daten aus den Tabellen gesammelt, und das ganze kann ich mir in einem Bericht ausgeben lassen, nun möchte ich das ganze per VBA dahingehend beschleunigen das ich die pdf.Datei automatisch benenne und direkt abspeichere.
Felder: MaschinenName; BANummer; Überprüfungstermin
Abfrage: qryBaMaschinenKomp
Bericht: rptBaMaschinen
Sub DruckeBerichtEinzelnAlsPDF()
Dim rcsP As DAO.Recordset
Set rcsP = CurrentDb.OpenRecordset("SELECT qryBaMaschinenKomp.BANummer FROM qryBaMaschinenKomp WHERE qryBaMaschinenKomp.BANummer Is Not Null;", dbOpenDynaset)
Do Until rcsP.EOF
DoCmd.OpenReport "rptBaMaschinen", acViewPreview, , "qryBaMaschinenKomp.BANummer = '" & rcsP.Fields("BANummer").Value & "'"
DoCmd.OutputTo acOutputReport, "rptBaMaschinen", acFormatPDF, CurrentProject.Path & "\BA - " & rcsP.Fields("BANummer").Value & " - " & rcsP.Fields("MaschinenName").Value & " - Verwendbar bis: " & rcsP.Fields("Überprüfungstermin").Value
DoCmd.Close acReport, "rptBaMaschinen"
rcsP.MoveNext
Loop
End Sub
Aktuell gibt er mir da den Laufzeitfehler 3265 aus und markiert die 2 Zeile DoCmd.OutputTo.
Vielleicht hat ja jemand von euch eine zündende Idee
Viele Grüße
Sebastian
Hallo Sebastian,
Fehlernummern hat hier keiner im Kopf, zeige die zugehörige Meldung.
Hast du überprüft ob überhaupt ein gültiger Pfad/Dateiname zurück
gegeben wird?
gruss ekkehard
Hallo Beaker
Ach so ja klar sorry sitze mal wieder im Wald und sehe den vor lauter Bäumen nicht...
Laufzeitfehler 3265
Element in der Auflistung nicht gefunden.
Aber beim Debug spuckt er mir alle so aus wie es sein soll als:
C:\Users\sthelen\Documents\Gefahrstoffmanagment\Betriebsanweisungen\BA - BM-DPS-039 - Betriebs und Lagerfläche - Verwendbar bis: 15.01.2024
Die schreibt er auch für alle 38 anderen Datensätze
Sub PfadDatei()
Dim rcsP As DAO.Recordset
Set rcsP = CurrentDb.OpenRecordset("qryBaMaschinenKomp", dbOpenDynaset)
Do Until rcsP.EOF
Debug.Print CurrentProject.Path & "BA - "; rcsP.Fields("BANummer").Value & " - " & rcsP.Fields("MaschinenName").Value & " - Verwendbar bis: " & rcsP.Fields("Überprüfungstermin").Value
rcsP.MoveNext
Loop
End Sub
hallo,
ein Doppelpunkt ist in Dateinamen nicht zulässig. Ich würde auch auf keinen Fall das Datum mit Punkten schreiben und auf die vielen Leerzeichen würde ich auch verzichten.
Und .Value braucht man auch nicht. Ist aber nicht falsch, macht nur die Zeile kürzer.
Einem erzeugten PDF sollte man auch die Dateiendung .pdf geben. Was meinst Du mit "alle so ... wie es sein soll"?
Der Fehler: In dem unendlich langen und prolematischen Dateinamen sollen Inhalte von drei Recordsetfeldern eingebaut werden. Die Abfrage zur Recordseterzeugung hat aber nur ein Feld. Wer wundert sich dann noch?