Hallo zusammen.
Ich habe einen Fehler in meiner Funktion, die durch Klick auf eine Schaltfläche im Formular die ausgefüllten Daten des Formulars zum einen in eine PDF-Datei speichern und diese dann über SMTP als Mail an einen bestimmten Empfänger gesendet werden soll. Es handelt sich um Bereitschaftsberichte, die auch auf dem jeweiligen PC, auf dem sie erstellt werden, archiviert werden sollen. Darum habe ich mich auch für einen Dateinamen mit Zeitstempel entschieden, damit die Datei nicht immer überschrieben wird. Ich bekomme den Laufzeitfehler, dass der Formularname "Bereitschaft_20260415_154847.pdf" falsch geschrieben ist oder auf ein Formular verweist, das nicht vorhanden ist. Was habe ich da für einen Fehler drin? Hier der Code:
Private Sub PDF_Senden()
Dim formName As String
Dim pdfPath As String
Dim emailTo As String
Dim subject As String
Dim body As String
formName = "Bereitschaft_" & Format(Now(), "yyyymmdd_hhnnss") & ".pdf" ' Name Ihres Formulars mit Zeitstempel
pdfPath = "C:\Access\Bereitschaftsberichte\" & formName & "" ' Speicherort des Formulars
' 1.Exportvorgang
DoCmd.OpenForm formName, acViewPreview, acHidden
DoCmd.OutputTo acOutputForm, formName, acFormatPDF, pdfPath
DoCmd.Close acForm, formName
' 2. E-Mail mit PDF-Anhang senden
DoCmd.SendObject acSendForm, formName, acFormatPDF, _
emailTo, , , subject, body, False ' True = E-Mail anzeigen vor Versand
With OutMail
.From = "xxx@xyz.de"
.To = "yyy@xyz.de"
.subject = "Bereitschaftsbericht"
.BodyPart.Charset = "iso-8859-1"
.TextBody = "Hallo zusammen. Hiermit sende ich Ihnen meinen Bereitschaftsbericht."
.AddAttachment formName
With .Configuration.Fields
.Item(Schema & "sendusing") = cdoSendUsingPort
.Item(Schema & "smtpserver") = "mailserver.local"
.Item(Schema & "smtpserverport") = 25
.Item(Schema & "smtpauthenticate") = cdoAnonymous
.Update
End With
.Send
End With
Set OutMail = Nothing
End Sub
Ich hoffe, es findet jemand von euch auf die Schnelle meinen Fehler im Code.
Viele Grüße
Karsten
Hallo,
laß mich raten... KI-generiert? :)
formName = "Bereitschaft_" & Format(Now(), "yyyymmdd_hhnnss") & ".pdf" ' Name Ihres Formulars mit Zeitstempel
DoCmd.OpenForm formName, acViewPreview, acHidden
Was sagt Dir das?
Name Ihres Formulars mit Zeitstempel
Damit war wohl offensichtlich das "PDF-Formular" gemeint und nicht das Formular, das Du mit OpenForm öffnen willst.
Gruß
Christian
Hallo,
@Chistian
Das ist doch schon offen
Zitatdie durch Klick auf eine Schaltfläche im Formular die ausgefüllten Daten des Formulars ...
@Karsten Vermutlich willst du aus den Daten des angezeigten DS, eine .pdf-Datei generieren. Da würde ich den Umweg über einen Bericht nehmen. In Prosa: Bericht mit Filter auf angezeigten DS öffnen (kann auch "Hidden" sein), und diesen dann als .pdf speichern (Name wie du es willst).
gruss ekkehard