Hallo,
folgendes unlösbaren Problem habe ich.
Mit folgendem code werden Reporte verschickt und gespeichert:
Private Sub Reporte_senden_Click()
Const QRY As String = "qry_rpt_Mail"
Dim ReportFilter As String
If IsDate(Me.Leistungsdatum) Then
With CurrentDb.QueryDefs(QRY)
.Parameters("@Datum") = Me.Leistungsdatum
With .OpenRecordset(dbOpenSnapshot, dbForwardOnly)
Do Until .EOF
ReportFilter = BuildCriteria("Partner", dbText, !TD_Leister)
DoCmd.OpenReport "rpt_QR", acViewPreview, , ReportFilter, acHidden
'Mail versenden
DoCmd.SendObject acSendReport, "rpt_QR", acFormatPDF, !Mail, , , !TD_Leister & "_Qualitätsreport vom " & Me.Leistungsdatum, _
"Guten Morgen," & vbLf & vbLf & _
"im Anhang finden Sie den aktuellen Qualitätsreport, mit der Bitte um Prüfung." & vbLf & _
"Bitte setzen Sie sich mit diesem Report intensiv auseinander und nutzen sie ihn, um mögliche Probleme " & _
"zu erkennen und zu beseitigen." & vbLf & vbLf & _
"Sollten Sie Fragen oder Anregungen haben, stehen wir Ihnen selbstverständlich jederzeit gerne " & _
"zur Verfügung" & vbLf & vbLf & vbLf & _
"Viele Grüße" & vbLf & vbLf & _
"Ihr Team", True ' automatisches Senden - False=JA, True=NEIN
'Reporte speichern
DoCmd.OutputTo acOutputReport, "rpt_QR", acFormatPDF, "c:\user\Test\" & _
Me.Leistungsdatum & "_" & !TD_Leister & ".pdf"
DoCmd.Close acReport, "rpt_QR", acSaveNo
.MoveNext
Loop
.Close
End With
End With
End If
End Sub
Das läuft auch super, nur leider nicht bis zum Ende.
Er bricht immer wieder, nach ca. 10 Mails (von derzeit 32), entweder mit:
- Laufzeitfehler 2501 (Aktion outputto wurde unterbrochen) oder mit
- Laufzeitfehler 2498 (Sie haben für eines der Argumente einen Ausdruck angegeben, der nicht den für das Argument erforderliche Datentyp hat)
ab.
Habe es auch schon von verschiedenen Rechnern versucht und immer das gleiche Fehlerbild....:-(.
Wer kann mir das weiterhelfen?
Vielen Dank im Voraus
Andreas
Ich würde wechselweise eine der beiden Funktionalitäten (Mailversand, PDF-Export) auskommentieren, um die Fehlerquelle einzugrenzen.
BTW: Die zusätzlichen Punkte im Dateinamen , verursacht durch das Datum, würde ich nicht verwenden und eher eine vernünftige Sortierung nach dem Dateinamen ermöglichen.
"c:\user\Test\" & Format$(Me.Leistungsdatum, "yyyymmdd) & "_" & !TD_Leister & ".pdf"
Hallo Andreas,
Kann es leider nicht testen, da ich die Abfrage (qry_rpt_Mail) nicht kenne, -
ist wohl neu.
Habe den Code zwar schon mal kopiert und ordentlich formatiert, aber ohne
die Abfrage komme ich damit nicht weiter.
Welche Codezeile wird denn angezeigt wenn's zum Fehler kommt?
gruss ekkehard
P.S.: Was du machen könntest, unabhängig vom o.a. Fehler, wäre das Datum
SQL-konform zu übergeben
.Parameters("@Datum") = Format$(Me.Leistungsdatum, "\#yyyy\-mm\-dd\#")
Ich kann mich da an einen Fehler erinnern, wie ich es als Parameter versucht
hatte (siehe deinen letzten Thread).
@Ekkehard,
das Datum bedarf keiner Formatierung, wenn Parameter verwendet werden.
Hallo Ihr Beiden,
habe den Rat von Lachtaube befolgt und das Senden und das Speichern getrennt.
Das funktioniert....
Lieben Dank für Eure Hilfe.
P.S. @Ekkehard, habe aber noch ein Problem mit Deinem anderen Code. Habe ich schon in den Thread geschrieben.
Hallo Ekkehard, hallo Lachtaube,
komme leider erst jetzt dazu mich bei Euch, für Eure Unterstützung, herzlichst zu bedanken.
Es läuft alles, genauso, wie ich es mir vorgestellt hatte.
Wünsche Euch ein wunderschönes Wochenende mit Euren Lieben...
Andreas