{"id":55001357,"date":"2022-04-01T00:00:00","date_gmt":"2022-05-10T18:34:34","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1357"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"EMails_mit_Anlagen_mit_Outlook_versenden","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/","title":{"rendered":"E-Mails mit Anlagen mit Outlook versenden"},"content":{"rendered":"<p><b>Das Versenden von E-Mails haben wir bereits ausf&uuml;hrlich in Access im Unternehmen beschrieben. Dort kam auch gelegentlich das Thema auf, wie Sie Dateien an solche E-Mails anh&auml;ngen. Allerdings gibt es bei genauerem Hinsehen Anforderungen, die wir noch nicht behandelt haben &#8211; zum Beispiel das Anh&auml;ngen vieler Dateien auf einen Rutsch oder auch das Hinzuf&uuml;gen von Dateien, die nicht aus einem Verzeichnis stammen. Hierzu sind dann mehrere Aufrufe des jeweiligen Dialogs zum Ausw&auml;hlen der Dateien erforderlich. Auf diese Spezialf&auml;lle gehen wir im vorliegenden Beitrag ein.<\/b><\/p>\n<h2>Anforderungen an die Beispiell&ouml;sung<\/h2>\n<p>Dieser Beitrag soll eine Beispiell&ouml;sung mit folgenden Funktionen beschreiben:<\/p>\n<ul>\n<li>Versenden einer E-Mail unter Angabe von Empf&auml;nger, Betreff und Inhalt<\/li>\n<li>Hinzuf&uuml;gen von Anlagen &uuml;ber einen Dateiauswahldialog. Dabei sollen mehrere Anlagen aus einem Verzeichnis gleichzeitig selektiert werden k&ouml;nnen und beim Hinzuf&uuml;gen weiterer Anlagen aus einem weiteren Verzeichnis sollen die bereits hinzugef&uuml;gten Anlagen erhalten bleiben.<\/li>\n<li>Bereits hinzugef&uuml;gte Anlagen sollen markiert und aus der E-Mail gel&ouml;scht werden k&ouml;nnen.<\/li>\n<\/ul>\n<h2>Vorbereitungen<\/h2>\n<p>Wir ben&ouml;tigen Verweise auf zwei VBA-Bibliotheken. Diese f&uuml;gen Sie dem VBA-Projekt &uuml;ber den <b>Verweise<\/b>-Dialog hinzu, den Sie mit dem Men&uuml;befehl <b>Extras|Verweise <\/b>des VBA-Editors &ouml;ffnen:<\/p>\n<ul>\n<li><b>Microsoft Office x.0 Object LIbrary<\/b>: Liefert das <b>FileDialog<\/b>-Objekt, mit dem wir den Dialog zum Ausw&auml;hlen der Anlagen anzeigen.<\/li>\n<li><b>Microsoft Outlook x.0 Object Library<\/b>: Stellt das <b>Mail-Item<\/b>-Objekt zum Versenden der E-Mail bereit.<\/li>\n<\/ul>\n<p>Mit den beiden hinzugef&uuml;gten Verweisen sieht der Verweise-Dialog wie in Bild 1 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1357_002.png\" alt=\"Verweise des VBA-Projekts\" width=\"499,5589\" height=\"393,8207\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Verweise des VBA-Projekts<\/span><\/b><\/p>\n<h2>Formular zum Erstellen der E-Mail mit Anlage<\/h2>\n<p>Das Formular, von dem aus wir das Versenden von E-Mails mit Anlagen steuern wollen, hei&szlig;t <b>frmMailsMitAttachment<\/b> und sieht in der Entwurfsansicht wie in Bild 2 aus. Das Formular verwendet die folgenden Steuerelemente:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1357_001.png\" alt=\"Formular in der Entwurfsansicht\" width=\"499,5589\" height=\"441,4488\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Formular in der Entwurfsansicht<\/span><\/b><\/p>\n<ul>\n<li><b>txtAn<\/b>: Dient der Erfassung des Empf&auml;ngers der E-Mail.<\/li>\n<li><b>txtBetreff<\/b>: Nimmt den Betreff der E-Mail auf.<\/li>\n<li><b>txtInhalt<\/b>: Hier k&ouml;nnen Sie den Inhalt der E-Mail eingeben.<\/li>\n<li><b>lstAnlagen<\/b>: Listenfeld zur Anzeige der bereits hinzugef&uuml;gten Anlagen. Das Listenfeld soll die Mehrfachauswahl erlauben, damit auch mehrere Anlagen gleichzeitig wieder aus der Liste entfernt werden k&ouml;nnen. Dazu legen wir f&uuml;r die Eigenschaft <b>Mehrfachauswahl <\/b>den Wert <b>Erweitert <\/b>fest. Au&szlig;erdem stellen wir f&uuml;r dieses Listenfeld die Eigenschaften <b>Horizontaler Anker <\/b>und <b>Vertikaler Anker <\/b>auf <b>Beide <\/b>ein, damit das Listenfeld mit dem Formular vergr&ouml;&szlig;ert werden kann. Damit das dazugeh&ouml;rige Bezeichnungsfeld an Ort und Stelle bleibt, erhalten <b>Horizontaler Anker <\/b>und <b>Vertikaler Anker <\/b>hier die Werte <b>Links <\/b>und <b>Oben<\/b>. Damit wir die ausgew&auml;hlten Dateien einzeln hinzuf&uuml;gen k&ouml;nnen, stellen wir au&szlig;erdem die Eigenschaft <b>Herkunftstyp <\/b>auf <b>Wertliste <\/b>ein.<\/li>\n<li><b>cmdHinzufuegen<\/b>: &Ouml;ffnet einen Dateiauswahldialog zum Ausw&auml;hlen der hinzuzuf&uuml;genden Anlagen und f&uuml;gt diese nach der Auswahl zum Listenfeld <b>lstAnlagen <\/b>hinzu.<\/li>\n<li><b>cmdLoeschen<\/b>: L&ouml;scht die aktuell markierten Eintr&auml;ge des Listenfeldes. Die Schaltfl&auml;che soll nur markiert sein, wenn im Listenfeld <b>lstAnlagen <\/b>mindestens ein Eintrag markiert ist.<\/li>\n<li><b>cmdSenden<\/b>: Sendet die E-Mail mit den Angaben der Felder <b>txtAn<\/b>, <b>txtBetreff <\/b>und <b>txtInhalt <\/b>und mit den im Listenfeld <b>lstAnlagen <\/b>angegebenen Dateien. F&uuml;r diese Schaltfl&auml;che stellen wir die Eigenschaft <b>Vertikaler Anker <\/b>auf <b>Unten <\/b>ein, damit es beim Vergr&ouml;&szlig;ern des Formulars unten verankert ist.<\/li>\n<\/ul>\n<p>Die Eigenschaften <b>Datensatzmarkierer<\/b>, <b>Navigationsschaltfl&auml;chen<\/b>, <b>Bildlaufleisten <\/b>und <b>Trennlinien <\/b>sollen den Wert <b>Nein <\/b>und die Eigenschaft <b>Automatisch zentrieren <\/b>den Wert <b>Ja <\/b>haben.<\/p>\n<h2>Anlagen zur Liste hinzuf&uuml;gen<\/h2>\n<p>Die Schaltfl&auml;che <b>cmdHinzufuegen <\/b>soll einen Dateiauswahldialog &ouml;ffnen, mit dem der Benutzer eine oder mehrere Dateien aus einem Verzeichnis ausw&auml;hlen und zur Liste hinzuf&uuml;gen kann. Die Liste zeigt die Dateien dann mit dem vollst&auml;ndigen Pfad an. Dabei wollen wir das mehrfache Hinzuf&uuml;gen von Dateien unterbinden. Dies w&auml;re m&ouml;glich, da wir erlauben wollen, dass der Benutzer durch mehrfaches Anklicken der <b>Hinzuf&uuml;gen<\/b>-Schaltfl&auml;che auch mehrfach Dateien aus dem gleichen Verzeichnis hinzuf&uuml;gen k&ouml;nnte.<\/p>\n<p>Also pr&uuml;fen wir vor dem Hinzuf&uuml;gen einer Datei zum Listenfeld <b>lstAnlagen<\/b>, ob diese bereits in der Liste enthalten ist.<\/p>\n<p>Die durch die Schaltfl&auml;che <b>cmdHinzufuegen<\/b> ausgel&ouml;ste Prozedur finden Sie in Listing 1. Hier deklarieren wir zwei Laufvariablen sowie das <b>FileDialog<\/b>-Objekt und eine <b>Boolean<\/b>-Variable. Die Variable <b>objFileDialog <\/b>f&uuml;llen wir mit einem Objekt der Klasse <b>FileDialog <\/b>mit dem Typ <b>msoFileDialogPicker<\/b> &#8211; mehr Informationen &uuml;ber diese Klasse finden Sie im Beitrag <b>Dateien und Verzeichnisse ausw&auml;hlen mit FileDialog <\/b>(<b>www.access-im-unternehmen.de\/****<\/b>).<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdHinzufuegen_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objFileDialog<span style=\"color:blue;\"> As <\/span>FileDialog\r\n     <span style=\"color:blue;\">Dim <\/span>l<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>m<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>bolVorhanden<span style=\"color:blue;\"> As Boolean<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> objFileDialog = FileDialog(msoFileDialogFilePicker)\r\n     <span style=\"color:blue;\">With<\/span> objFileDialog\r\n         .AllowMultiSelect = <span style=\"color:blue;\">True<\/span>\r\n         .Title = \"Anlagen ausw&auml;hlen\"\r\n         .Filters.Clear\r\n         .Filters.Add \"Alle Dateien\", \"*.*\"\r\n         .ButtonName = \"Hinzuf&uuml;gen\"\r\n         <span style=\"color:blue;\">If <\/span>.Show = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n             For l = 1 To .SelectedItems.Count\r\n                 <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">Len<\/span>(Me!lstAnlagen.RowSource + .SelectedItems(l)) &gt; 32750<span style=\"color:blue;\"> Then<\/span>\r\n                     bolVorhanden = <span style=\"color:blue;\">False<\/span>\r\n                     For m = 1 To Me!lstAnlagen.ListCount\r\n                         <span style=\"color:blue;\">If <\/span>Me!lstAnlagen.ItemData(m) = .SelectedItems(l)<span style=\"color:blue;\"> Then<\/span>\r\n                             bolVorhanden = <span style=\"color:blue;\">True<\/span>\r\n                             <span style=\"color:blue;\">Exit For<\/span>\r\n                         <span style=\"color:blue;\">End If<\/span>\r\n                     <span style=\"color:blue;\">Next<\/span> m\r\n                     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> bolVorhanden<span style=\"color:blue;\"> Then<\/span>\r\n                         Me!lstAnlagen.AddItem .SelectedItems(l)\r\n                     <span style=\"color:blue;\">End If<\/span>\r\n                 <span style=\"color:blue;\">Else<\/span>\r\n                     <span style=\"color:blue;\">MsgBox<\/span> \"Es k&ouml;nnen keine weiteren Dateien zur Liste hinzugef&uuml;gt werden.\"\r\n                     <span style=\"color:blue;\">Exit Sub<\/span>\r\n                 <span style=\"color:blue;\">End If<\/span>\r\n             <span style=\"color:blue;\">Next<\/span> l\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><!--30percent--><\/p>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Prozedur zum Ausw&auml;hlen von Dateien<\/span><\/b><\/p>\n<p>Wir stellen mit der Eigenschaft <b>AllowMultiSelect <\/b>ein, dass der Benutzer mehrere Dateien gleichzeitig ausw&auml;hlen kann. Mit <b>Title<\/b> legen wir den Titel fest, dann leeren wir mit <b>Filters.Clear <\/b>die vorhandenen Filter und f&uuml;gen mit <b>Add <\/b>den Filter f&uuml;r alle Dateitypen hinzu. Die Bezeichnung der Schaltfl&auml;che zum &Uuml;bernehmen der Auswahl stellen wir auf <b>ButtonName <\/b>ein.<\/p>\n<p>Danach folgt der Aufruf des Dialogs mit der <b>Show<\/b>-Methode, was wie in Bild 3 aussieht. Nach der Auswahl mit der Schaltfl&auml;che <b>Hinzuf&uuml;gen <\/b>wird der <b>If<\/b>-Teil der <b>If&#8230;Then<\/b>-Abfrage ausgef&uuml;hrt. W&uuml;rde der Benutzer auf <b>Abbrechen <\/b>klicken, liefert die <b>Show<\/b>-Methode den Wert <b>False <\/b>und die Prozedur l&auml;uft nach der <b>If&#8230;Then<\/b>-Bedingung weiter.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1357_003.png\" alt=\"Auswahl der anzuh&auml;ngenden Dateien\" width=\"649,559\" height=\"399,8501\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Auswahl der anzuh&auml;ngenden Dateien<\/span><\/b><\/p>\n<p>Bevor es richtig losgeht, gehen wir auf eine Beschr&auml;nkung des Listenfeldes ein: Die Datensatzherkunft kann n&auml;mlich maximal 32.750 Zeichen erfassen. Daher pr&uuml;fen wir vor dem Einlesen der hinzuzuf&uuml;genden Dateien, ob die aktuelle L&auml;nge des Inhalts der Eigenschaft <b>RowSource<\/b> plus der L&auml;nge des hinzuzuf&uuml;genden Eintrags innerhalb dieses Limits bleibt. Ist das der Fall, f&uuml;gen die folgenden Anweisungen die Datei zum Listenfeld hinzu, anderenfalls erscheint eine entsprechende Meldung. So viele Dateien werden Sie aber in der Regel auch nicht zu einer E-Mail hinzuf&uuml;gen. Sollte dies dennoch einmal erforderlich sein, k&ouml;nnen Sie die hinzuzuf&uuml;genden Dateien zuvor beispielsweise zu einem Zip-Archiv hinzuf&uuml;gen.<\/p>\n<p>Innerhalb der <b>If&#8230;Then<\/b>-Bedingung folgt zun&auml;chst eine <b>For&#8230;Next<\/b>-Schleife &uuml;ber alle im Dateiauswahldialog gew&auml;hlten Dateien. Deren Anzahl ermitteln wir dabei mit der Eigenschaft <b>SelectedItems.Count <\/b>des Objekts aus <b>objFileDialog<\/b>. Der Index von <b>SelectedItems <\/b>ist <b>1<\/b>-basiert, daher l&auml;uft die Schleife von <b>1 <\/b>bis zur Anzahl der selektierten Eintr&auml;ge.<\/p>\n<p>F&uuml;r jede in dieser Schleife durchlaufene, im Dialog ausgew&auml;hlte Datei setzt die Prozedur zun&auml;chst die Variable <b>bolVorhanden <\/b>auf den Wert <b>False<\/b>. Dann durchl&auml;uft sie alle bereits im Listenfeld <b>lstAnlagen <\/b>vorhandenen Eintr&auml;ge in der inneren <b>For&#8230;Next<\/b>-Schleife. Diese l&auml;uft ebenfalls von <b>1 <\/b>bis zur mit <b>ListCount <\/b>ermittelten Anzahl der Listeneintr&auml;ge. Innerhalb der zweiten Schleife vergleicht die Prozedur den Wert des aktuellen Listeneintrags aus <b>Me!lstAnlagen.ItemData(m)<\/b> und der aktuell untersuchten, hinzuzuf&uuml;genden Datei aus <b>objFileDialog.Selected-Items(l)<\/b>. Sind beide gleich, ist die Datei bereits in der Liste enthalten. Dann stellt die Prozedur den Wert der Variablen <b>bolVorhanden <\/b>auf <b>True <\/b>ein und verl&auml;sst die innere <b>For&#8230;Next<\/b>-Schleife.<\/p>\n<p>Hat die Variable <b>bolVorhanden <\/b>nach dem Verlassen der inneren Schleife (entweder vorzeitig oder nach dem Durchlaufen aller Elemente) den Wert <b>False<\/b>, dann f&uuml;gt die Prozedur dem Listenfeld die hinzuzuf&uuml;gende Datei mit der <b>AddItem<\/b>-Methode hinzu. Auf diese Weise durchlaufen wir alle hinzuzuf&uuml;genden Dateien.<\/p>\n<p>Das Ergebnis sieht beispielsweise wie in Bild 4 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1357_004.png\" alt=\"Das Listenfeld mit den frisch hinzugef&uuml;gten Dateien\" width=\"700\" height=\"319,1061\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Das Listenfeld mit den frisch hinzugef&uuml;gten Dateien<\/span><\/b><\/p>\n<h2>Hinzuf&uuml;gen weiterer Dateien<\/h2>\n<p>Wenn der Benutzer weitere Dateien aus dem gleichen oder einem anderen Verzeichnis hinzuf&uuml;gen m&ouml;chte, kann er das durch erneutes Bet&auml;tigen der Schaltfl&auml;che <b>cmdHinzufuegen <\/b>erledigen. Dann werden die weiteren Dateien einfach hinten an die Liste angeh&auml;ngt.<\/p>\n<h2>Anlagen aus der Liste entfernen<\/h2>\n<p>Die Schaltfl&auml;che <b>cmdLoeschen <\/b>soll das Entfernen markierter Eintr&auml;ge aus dem Listenfeld erlauben. Diese Funktion ist beispielsweise daf&uuml;r gedacht, wenn der Benutzer eine Datei versehentlich hinzugef&uuml;gt hat und diese wieder entfernen m&ouml;chte.<\/p>\n<p>Die durch die Schaltfl&auml;che ausgel&ouml;ste Prozedur finden Sie in Listing 2. Sie pr&uuml;ft zun&auml;chst mit der Eigenschaft <b>SelectedItems.Count <\/b>des Listenfeldes, ob der Benutzer &uuml;berhaupt mindestens einen Eintrag markiert hat. Falls nicht, erscheint eine entsprechende Meldung, anderenfalls durchl&auml;uft die Prozedur eine Schleife vom ersten bis zum letzten markierten Element. Und hier kommt der Trick: Wir k&ouml;nnen nicht einfach die markierten Elemente in der Schleife entfernen, denn beim Entfernen des ersten Elements wird die Markierung im Listenfeld entfernt. Wir m&uuml;ssen also in zwei Schritten vorgehen:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdLoeschen_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>l<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>lngMarkiert()<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> Me!lstAnlagen.ItemsSelected.Count = 0<span style=\"color:blue;\"> Then<\/span>\r\n         ReDim lngMarkiert(Me!lstAnlagen.ItemsSelected.Count - 1)\r\n         For l = 0 To Me!lstAnlagen.ItemsSelected.Count - 1\r\n             lngMarkiert(l) = Me.lstAnlagen.ItemsSelected(l)\r\n         <span style=\"color:blue;\">Next<\/span> l\r\n         For l = <span style=\"color:blue;\">UBound<\/span>(lngMarkiert) To <span style=\"color:blue;\">LBound<\/span>(lngMarkiert) Step -1\r\n             Me!lstAnlagen.RemoveItem lngMarkiert(l)\r\n         <span style=\"color:blue;\">Next<\/span> l\r\n     <span style=\"color:blue;\">Else<\/span>\r\n         <span style=\"color:blue;\">MsgBox<\/span> \"Bitte w&auml;hlen Sie die zu entfernenden Eintr&auml;ge aus.\"\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Prozedur zum Entfernen markierter Dateien aus dem Listenfeld<\/span><\/b><\/p>\n<ul>\n<li>Erfassen des Index aller markierten Eintr&auml;ge in einem Array<\/li>\n<li>Durchlaufen dieses Arrays und L&ouml;schen der enthaltenen Eintr&auml;ge<\/li>\n<\/ul>\n<p>Das ben&ouml;tigte Array <b>lngMarkiert() <\/b>redimensionieren wir gleich innerhalb der <b>If&#8230;Then<\/b>-Bedingung mit der Anzahl der markierten Eintr&auml;ge. Davon ziehen wir noch den Wert <b>1 <\/b>ab, da der Index des Arrays standardm&auml;&szlig;ig <b>0 <\/b>ist. <\/p>\n<p>In der ersten <b>For&#8230;Next<\/b>-Schleife &uuml;ber die Werte von <b>0 <\/b>bis zur Anzahl der markierten Elemente minus <b>1 <\/b>schreiben wir den Index des jeweils markierten Elements in das entsprechende Element des Arrays <b>lngMarkiert<\/b>.<\/p>\n<p>In der zweiten <b>For&#8230;Next<\/b>-Schleife durchlaufen wir dann alle Elemente des Arrays, und zwar in umgekehrter Reihenfolge vom Element mit dem gr&ouml;&szlig;ten Index, also <b>Ubound(lngMarkiert)<\/b>, bis zum Element mit dem kleinsten Index, das wir mit <b>LBound(lngMarkiert) <\/b>ermitteln.<\/p>\n<p>Hier geben wir mit <b>Step &#8211; 1 <\/b>noch an, dass beim Durchlaufen der Schleife die Z&auml;hlervariable jeweils um <b>1 <\/b>vermindert wird. Innerhalb der Schleife entfernen wir dann mit der Methode <b>RemoveItem <\/b>das Element mit den entsprechenden Index aus <b>lngMarkiert(l)<\/b>.<\/p>\n<h2>E-Mail erstellen und senden<\/h2>\n<p>Schlie&szlig;lich wollen wir eine neue E-Mail mit den eingegebenen E-Mail-Daten und den ausgew&auml;hlten Dateien best&uuml;cken und anzeigen. Dazu verwenden wir die folgende Prozedur, die durch die Schaltfl&auml;che <b>cmdSenden <\/b>ausgel&ouml;st wird:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdSenden_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objOutlook<span style=\"color:blue;\"> As <\/span>Outlook.Application\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Dim <\/span>l<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> objOutlook = <span style=\"color:blue;\">New<\/span> Outlook.Application\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = objOutlook.CreateItem(olMailItem)\r\n     <span style=\"color:blue;\">With<\/span> objMailItem\r\n         .To = Nz(Me!txtAn)\r\n         .Subject = Nz(Me!txtBetreff)\r\n         .Body = Nz(Me!txtInhalt)\r\n         For l = 0 To Me!lstAnlagen.ListCount - 1\r\n             .Attachments.Add Me!lstAnlagen.ItemData(l)\r\n         <span style=\"color:blue;\">Next<\/span> l\r\n         .Display\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Prozedur referenziert oder neues <b>Outlook.Application<\/b>-Objekt. Dann erstellt sie mit dessen Methode <b>CreateItem <\/b>und dem Parameter <b>olMailItem <\/b>ein neues <b>MailItem<\/b>-Objekt. Dieses stattet die Prozedur anschlie&szlig;end mit den Daten aus den Steuerelementen des Formulars aus. Die Eigenschaften <b>To<\/b>, <b>Subject <\/b>und <b>Body <\/b>werden mit den Werten der Textfelder <b>txtAn<\/b>, <b>txtBetreff <\/b>und <b>txtInhalt <\/b>gef&uuml;llt.<\/p>\n<p>Danach folgen die Anlagen. Diese werden innerhalb einer <b>For&#8230;Next<\/b>-Schleife mit der <b>Add<\/b>-Methode der Auflistung <b>Attachments <\/b>hinzugef&uuml;gt. Dieser &uuml;bergeben wir lediglich mit dem ersten Parameter den Pfad zu der Datei.<\/p>\n<p>Das Ergebnis finden Sie schlie&szlig;lich in Bild 5. Sie k&ouml;nnen die E-Mail auch direkt versenden, indem Sie in der Prozedur die Methode <b>Display <\/b>durch die Methode <b>Send <\/b>ersetzen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_1357_005.png\" alt=\"Eine neu erstellte und mit Anlagen versehene E-Mail\" width=\"424,5589\" height=\"456,8149\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Eine neu erstellte und mit Anlagen versehene E-Mail<\/span><\/b><\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>EMailAttachmentsMitOutlook.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/49068EDB-F5CD-4923-9810-1F91ADC93BEE\/aiu_1357.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Versenden von E-Mails haben wir bereits ausf&uuml;hrlich in Access im Unternehmen beschrieben. Dort kam auch gelegentlich das Thema auf, wie Sie Dateien an solche E-Mails anh&auml;ngen. Allerdings gibt es bei genauerem Hinsehen Anforderungen, die wir noch nicht behandelt haben &#8211; zum Beispiel das Anh&auml;ngen vieler Dateien auf einen Rutsch oder auch das Hinzuf&uuml;gen von Dateien, die nicht aus einem Verzeichnis stammen. Hierzu sind dann mehrere Aufrufe des jeweiligen Dialog zum Ausw&auml;hlen der Dateien erforderlich. Auf diese Spezialf&auml;lle gehen wir im vorliegenden Beitrag ein.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022022,662022,44000026],"tags":[],"class_list":["post-55001357","post","type-post","status-publish","format-standard","hentry","category-66022022","category-662022","category-Interaktiv"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>E-Mails mit Anlagen mit Outlook versenden - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"E-Mails mit Anlagen mit Outlook versenden\" \/>\n<meta property=\"og:description\" content=\"Das Versenden von E-Mails haben wir bereits ausf&uuml;hrlich in Access im Unternehmen beschrieben. Dort kam auch gelegentlich das Thema auf, wie Sie Dateien an solche E-Mails anh&auml;ngen. Allerdings gibt es bei genauerem Hinsehen Anforderungen, die wir noch nicht behandelt haben - zum Beispiel das Anh&auml;ngen vieler Dateien auf einen Rutsch oder auch das Hinzuf&uuml;gen von Dateien, die nicht aus einem Verzeichnis stammen. Hierzu sind dann mehrere Aufrufe des jeweiligen Dialog zum Ausw&auml;hlen der Dateien erforderlich. Auf diese Spezialf&auml;lle gehen wir im vorliegenden Beitrag ein.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-10T18:34:34+00:00\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_mit_Anlagen_mit_Outlook_versenden\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_mit_Anlagen_mit_Outlook_versenden\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"E-Mails mit Anlagen mit Outlook versenden\",\"datePublished\":\"2022-05-10T18:34:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_mit_Anlagen_mit_Outlook_versenden\\\/\"},\"wordCount\":1844,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"articleSection\":[\"2\\\/2022\",\"2022\",\"Interaktiv\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_mit_Anlagen_mit_Outlook_versenden\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_mit_Anlagen_mit_Outlook_versenden\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_mit_Anlagen_mit_Outlook_versenden\\\/\",\"name\":\"E-Mails mit Anlagen mit Outlook versenden - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"datePublished\":\"2022-05-10T18:34:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_mit_Anlagen_mit_Outlook_versenden\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_mit_Anlagen_mit_Outlook_versenden\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_mit_Anlagen_mit_Outlook_versenden\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"E-Mails mit Anlagen mit Outlook versenden\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"E-Mails mit Anlagen mit Outlook versenden - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/","og_locale":"de_DE","og_type":"article","og_title":"E-Mails mit Anlagen mit Outlook versenden","og_description":"Das Versenden von E-Mails haben wir bereits ausf&uuml;hrlich in Access im Unternehmen beschrieben. Dort kam auch gelegentlich das Thema auf, wie Sie Dateien an solche E-Mails anh&auml;ngen. Allerdings gibt es bei genauerem Hinsehen Anforderungen, die wir noch nicht behandelt haben - zum Beispiel das Anh&auml;ngen vieler Dateien auf einen Rutsch oder auch das Hinzuf&uuml;gen von Dateien, die nicht aus einem Verzeichnis stammen. Hierzu sind dann mehrere Aufrufe des jeweiligen Dialog zum Ausw&auml;hlen der Dateien erforderlich. Auf diese Spezialf&auml;lle gehen wir im vorliegenden Beitrag ein.","og_url":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/","og_site_name":"Access im Unternehmen","article_published_time":"2022-05-10T18:34:34+00:00","author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"E-Mails mit Anlagen mit Outlook versenden","datePublished":"2022-05-10T18:34:34+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/"},"wordCount":1844,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"articleSection":["2\/2022","2022","Interaktiv"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/","url":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/","name":"E-Mails mit Anlagen mit Outlook versenden - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"datePublished":"2022-05-10T18:34:34+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/EMails_mit_Anlagen_mit_Outlook_versenden\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"E-Mails mit Anlagen mit Outlook versenden"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001357"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001357\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}