hallo und Guten Tag,
ich habe eine Access DB, die per VBA eine e-mail mit Anhängen versenden kann.
Access sucht die Anhänge anhand einer Kontonummer - das funktioniert ebenfalls.
Allerdings variiert, die Anzahl der Anhänge zwischen 2-5 Anhängen.
Aktuell kann ich nur "fehlerfrei" emails mit 5 Anhängen versenden.
Stand jetzt, habe ich im VBA Code Attachment.Add 5 x hinterlegt
Attachment.Add Anhang 1
Attachment.Add Anhang 2 etc....
Bei fünf Anhängen toll, wenn es nur 4 sind macht Access die mail auf, hängt alles dran und versendet,
allerdings kommt dann eine Fehlermeldung, da er ja Anhang 5 nicht findet.
Meine Frage:
Gibt es einen Loop, den man nutzen kann oder einen anderen Kniff, um dies zu verschlanken bzw. fehlerfrei zu gestalten ? probiere es nun seit drei Tagen, aber ich komm nicht zum Ziel
Sorry mein Code sieht für "Profis" wohl eher schlimm aus - Sorry ;-)
Private Sub Befehl17_Click()
' Sub SendEmailWithAttachment()
Dim OutApp As Object
Dim OutMail As Object
Dim strSubject As String
Dim lastMonthDate As Date
Dim strBody As String
Dim SuchNumer As String
Dim OrdnerPfad As String
Dim Dateiname As String
Dim Dateiname1 As String
Dim Dateiname2 As String
Dim GefundeneDatei As String
Dim GefundeneDatei1 As String
Dim GefundeneDatei2 As String
Dim GefundeneDatei3 As String
Dim GefundeneDatei4 As String
' --- KONFIGURATION ---
suchNummer = Me![Konto-Nr-Kontakte]
OrdnerPfad = "C:\Versand\" ' Pfad zum Ordner (mit \ am Ende)
' ---------------------
' Prüfen, ob der Pfad existiert
If Dir(OrdnerPfad, vbDirectory) = "" Then
MsgBox "Ordner nicht gefunden!", vbCritical
Exit Sub
End If
' Datei suchen (sucht Dateien, die SuchNummer enthalten)
Dateiname = Dir(OrdnerPfad & "*" & suchNummer & "*_PLE*.*")
Dateiname1 = Dir(OrdnerPfad & "Letter*" & suchNummer & "*.*")
Dateiname2 = Dir(OrdnerPfad & "*" & suchNummer & "*_SK*.*")
Dateiname3 = Dir(OrdnerPfad & "*" & suchNummer & "*_PLE*.xlsx")
Dateiname4 = Dir(OrdnerPfad & "*" & suchNummer & "*_SK*.xlsx")
If Dateiname = "" Then
MsgBox "Keine Datei mit der Nummer " & suchNummer & " gefunden.", vbExclamation
Exit Sub
End If
GefundeneDatei = OrdnerPfad & Dateiname
GefundeneDatei1 = OrdnerPfad & Dateiname1
GefundeneDatei2 = OrdnerPfad & Dateiname2
GefundeneDatei3 = OrdnerPfad & Dateiname3
GefundeneDatei4 = OrdnerPfad & Dateiname4
' Berechnet das Datum vor einem Monat
lastMonthDate = DateAdd("m", -1, Date)
With CreateObject("Outlook.Application").CreateItem(0)
.Display
.To = Me.email.Value
.subject = "Beispieltext " & Format(lastMonthDate, "mm-yyyy")
strBody = "<p>Sehr geehrte Damen und Herren,<br><br>" & vbCrLf & vbCrLf
.Attachments.Add GefundeneDatei
.Attachments.Add GefundeneDatei1
.Attachments.Add GefundeneDatei2
.Attachments.Add GefundeneDatei3
.Attachments.Add GefundeneDatei4
.HTMLBody = strBody & .HTMLBody
.Display
End With
Hallo Revilo,
wenn du Crossposting machst, solltest du die beiden Foren auch gegenseitig verlinken.
Knobbi38
Hallo Revilo,
ZitatGibt es einen Loop, den man nutzen kann oder einen anderen Kniff
Schreibe die "gefundenen" Dateien in ein Array. Das kannst du dann in einer
Schleife abarbeiten.
gruss ekkehard
Hallo,
Ergänzend möchte ich noch hinzufügen, dass die DB nur Name, Konto-Nr und emailadresse enthält.
Aber danke für die Antwort, ich werde mich mit dem Thema Array dann mal beschäftigen
Warum man Crossposting kennzeichnen sollte:
https://web.archive.org/web/20170619092620/http://www.excel-ist-sexy.de/crossposting/ (https://web.archive.org/web/20170619092620/http://www.excel-ist-sexy.de/crossposting/)
Hallo, das Thema konnte mit Hilfe des Eintrags - Serien Emails mit variablen Anhängen in ACCESS im Entwurf erstellen - aus diesem Forum gelöst
Ich möchte mich für mein Crossposting entschuldigen - scheint ja zu stören, wenn man in mehreren Foren um Hilfe fragt,
aber bei der Suche um Hilfe bzw. Unterstützung sucht man halt mehrere Wege- Danke trotzdem
Grüsse
Revilo