Hallo liebes Fachteam,
Ich möchte einen Bericht (Pdf) an Outlook mit mehreren eMail-Adressen aus einer Tabelle übergeben. Mit einer festen eMail-Adresse hatte ich es bereits geschafft, aber mit mehreren bekomme ich immer ein Fehler. Ich befülle bereits mit einer Abfrage ein Kombinationsfeld im Formular, wo das Werk im Anschluss ausgewählt wird und möchte die dazugerhöigen eMail-Adressen an Outlook übergeben. Es sind keine Beziehungen eingerichtet.
Die Erstellung der Pdf sowie Zwischenablage in LW "D" funktioniert alles problenlos.
Folgender Fehler kommt bim Start über das Formular:
Laufzeitfehler 3061, 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.
Fehler kommt in folgender zeile: Set rst = db.OpenRecordset(StrSQL)
Programmcode...
Private Sub Befehl165_Click() 'eMail erstellen und an Outlook übergeben
Dim s, eTo, AWS, olOldBody, strAddress, StrSQL As String
Dim myMail, myOutlApp As Object
Dim x As Date
Dim db As DAO.Database
Dim rst As DAO.Recordset
AWS = "D:\Temp\Losprüfung.pdf" 'Dateipfad und Name für Pdf-Zwischenspeicherung
If Dir$("D:\Temp\", vbDirectory) = "" Then MkDir "D:\Temp\" 'prüfen ob Ordner D:\Temp vorhanden, sonst anlegen
s = "andreas.korb@mustermann.com" 'Absenderadresse (geändert)
StrSQL = "SELECT tbl_eMail_Adressen.eMail "
StrSQL = StrSQL & "FROM tbl_Werke INNER JOIN tbl_eMail_Adressen ON tbl_Werke.Werke_ID = tbl_eMail_Adressen.Werke_ID "
StrSQL = StrSQL & "WHERE (((tbl_eMail_Adressen.To)=True) AND ((tbl_Werke.Werke_Name)=[Formulare]![frm_Anschreiben]![Kombi_Werke]))"
Set db = CurrentDb
Set rst = db.OpenRecordset(StrSQL)
With rst
Do Until .EOF
strAddress = strAddress & !eMail & ";" 'Empfängerliste(To) zusammenstellen
.MoveNext
Loop
.Close
Set rst = Nothing
End With
strAddress = Left(strAddress, Len(strAddress) - 1)
Application.Echo False
DoCmd.OutputTo acOutputReport, "ber_Anschreiben", acFormatPDF, "D:\Temp\Losprüfung" & ".pdf" 'Pdf erstellen/zwischenspeichern
Set myOutlApp = CreateObject("Outlook.Application")
Set myMail = myOutlApp.CreateItem(0)
With myMail
.GetInspector.Display
olOldBody = .htmlBody
.To = strAddress ' To-Empfänger hinzufügen"
.Subject = "Fehlende Generalnachweise E-Tfz | Monat " & Kombi_Monate & "'" & Kombi_Jahre ' Den Betreff der Mail festlegen
' Text in die Mail einfügen...
.htmlBody = "<font face=""calibri"" style=""font-size:12pt;"">Hallo zusammen,<br><br>" & "anbei die Losprüfung vom " & Date _
& " mit der Bitte um Zusendung fehlender Generalnachweise (siehe Anhang)<br> an: L-Halter-Tfz-S@mustermann.com<br><br>" _
& "<br><b>Monat:</b> " & Kombi_Monate & "'" & Kombi_Jahre & " | " & Kombi_Werke _
& "<br><br><b>PS:</b> Eventuell noch fehlende GN aus Vormonaten ebenfalls anfügen! " _
& "<br><br>Sollte ein Mitarbeiter nicht mit im Verteiler angesprochen sein, bitte an Ihn weiterleiten." _
& "<br>Bei Fragen bitte ich sie, sich an uns zu wenden. " _
& "<br><br>Vielen Dank" & olOldBody 'Body. "<br>" = Zeilenumbruchanweisung
.Attachments.Add AWS 'Datei anhängen
.Display '.Send 'Email Vorschau/Senden
End With
Set myMail = Nothing
Set myOutlApp = Nothing
rst.Close: Set rst = Nothing
Set db = Nothing
Kill "D:\Temp\Losprüfung.pdf" 'pdf-Datei löschen
Application.Echo True
End Sub
Vielen Dank für Eure Unterstützung
Ich habe Access 365
vg Andy
|