Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dateianhänge als .Attachments.Add an den SMTP übergeben

Frage Microsoft Microsoft Office

Mitglied: thomas1972

thomas1972 (Level 1) - Jetzt verbinden

22.01.2015, aktualisiert 08:47 Uhr, 771 Aufrufe, 5 Kommentare

Hallo,

ich hab da mal eine frage wie man es vielleicht eleganter umsetzen kann.

Ich versende Emails über Acces und selektiere die anhänge über ein getrentes Formular

Auf diesem habe ich X Grafiken und Textfelder für die selektiere Pfadangabe

bei klick öffnet sich das Windows Selektionsfenster zur Auswahl der Datei. (10 Grafiken), welche jeder für sich angewählt werden muss.

Nun bin ich auf der Suche nach eine eleganteren Möglichkeit x Anhänge gleichzeitig auszuwählen und entsprechend zu übergeben.
Hat jemand vielleicht eine Idee der Umsetzung

01.
Private Sub Anhang_1_Click() 
02.
Me.Anhang1 = DateiOeffnen("Datei öffnen", "Datenbanken" & Chr$(0) & "*.*") 
03.
eAnhang(1) = Anhang1 
04.
End Sub 
05.
... 
06.
Private Sub Anhang_10_Click() 
07.
Me.Anhang10 = DateiOeffnen("Datei öffnen", "Datenbanken" & Chr$(0) & "*.*") 
08.
eAnhang(10) = Anhang10 
09.
End Sub
diese Übergebe ich dann zum senden per CDO an den SMTPServer


01.
..... 
02.
With objMsg 
03.
'Einfügen der anhänge 
04.
    For w = 1 To 10 
05.
     If eAnhang(w) <> "" Then 
06.
      .Attachments.Add eAnhang(w)  'Anhang aus formular 
07.
     End If 
08.
    Next 
09.
'Ende Einfügen der anhänge 
10.
.... 
11.
     .To = varemail 
12.
     .SentOnBehalfOfName = "....." 
13.
     .Subject = "Testmail: " & Betreff 
14.
     .Importance = 0 'Wichtigkeit Hoch ( 0 = niedrig, 1 = normal, 2 = Hoch) 
15.
     .BodyFormat = 3 '1=Plain text, 2=HTML 3=RichText 
16.
     .Body = Mailtext 'RichText 
17.
     .Send   'or  .display

Grüße aus München
Mitglied: colinardo
22.01.2015, aktualisiert um 09:41 Uhr
Hallo Thomas,
mit einem FileDialog-Objekt bei dem die Eigenschaft MultiSelect auf True steht problemlos machbar.
Siehe dazu:

Grüße Uwe
Bitte warten ..
Mitglied: thomas1972
22.01.2015, aktualisiert um 14:13 Uhr
Hallo Uwe,
danke für die Rückmeldung,

habe folgendes Probiert

01.
Function UseFileDialogOpen() As String 
02.
 
03.
    Dim lngCount As Long 
04.
    Dim ordner As FileDialog 
05.
    
06.
    Set ordner = Application.FileDialog(msoFileDialogFilePicker) 
07.
    With ordner 
08.
        .Title = "Auswahl" 
09.
        .AllowMultiSelect = True 
10.
        .ButtonName = "Auswählen" 
11.
        .Filters.Clear 
12.
        .Show 
13.
        For lngCount = 1 To .SelectedItems.Count 
14.
            UseFileDialogOpen = .SelectedItems(lngCount) 
15.
        Next lngCount 
16.
    End With 
17.
    Set ordner = Nothing 
18.
End Function 
19.
 
20.
Private Sub Datei_auswählen_Click() 
21.
Dim varDateien As Variant 
22.
    varDateien = Array(UseFileDialogOpen()) 
23.
    
24.
    Set OutApp = CreateObject("Outlook.Application") 
25.
    Set OutMail = OutApp.CreateItem(0) 
26.
     
27.
    With OutMail 
28.
        .To = "test@test.de" 'Empfaenger 
29.
        .Subject = Betreff 'Betreff 
30.
        .Body = Nachricht 'Nachricht 
31.
        .Attachments.Add (varDateien) 'Anhang 
32.
        .Display 
33.
    End With

ich sehe zwar bei UseFileDialogOpen, dass er die schleife durchläuft und die Anhänge auflistet,
nur kommt er mit den Anhängen nicht klar "ungültiger Prozeduraufruf",
kanst du hier nochmal schauen?
Bitte warten ..
Mitglied: colinardo
22.01.2015, aktualisiert um 14:23 Uhr
Das geht so leider nicht, mach es beispielsweise so:
01.
Function UseFileDialogOpen() As String() 
02.
 
03.
    Dim lngCount As Long 
04.
    Dim ordner As FileDialog 
05.
    Dim fileArray() As String 
06.
    
07.
    Set ordner = Application.FileDialog(msoFileDialogFilePicker) 
08.
    With ordner 
09.
        .Title = "Auswahl" 
10.
        .AllowMultiSelect = True 
11.
        .ButtonName = "Auswählen" 
12.
        .Filters.Clear 
13.
        If .Show = -1 Then 
14.
            For lngCount = 1 To .SelectedItems.Count 
15.
                ReDim Preserve fileArray(1 To lngCount) 
16.
                fileArray(lngCount) = .SelectedItems(lngCount) 
17.
            Next         
18.
        End If 
19.
    End With 
20.
    UseFileDialogOpen = fileArray 
21.
    Set ordner = Nothing 
22.
End Function 
23.
 
24.
Private Sub Datei_auswählen_Click() 
25.
    Dim files() As String 
26.
    files = UseFileDialogOpen 
27.
 
28.
    Set OutApp = CreateObject("Outlook.Application") 
29.
    Set OutMail = OutApp.CreateItem(0) 
30.
     
31.
    With OutMail 
32.
        .To = "test@test.de" 'Empfaenger 
33.
        .Subject = Betreff 'Betreff 
34.
        .Body = Nachricht 'Nachricht 
35.
         For Each file In files 
36.
            .Attachments.Add file 
37.
         Next 
38.
        .Display 
39.
    End With 
40.
End Sub
Bitte warten ..
Mitglied: thomas1972
22.01.2015 um 14:36 Uhr
Danke Uwe,

das wars gewesen.
eine kleine Frage habe ich da dennoch,
besteht die Möglichkeit die Werte der file in Variablen zwischen zu speichern, so das der Sendevorgang auch später noch nachgeholt werden kann ( werte dann aus den Variablen ziehend)?
Bitte warten ..
Mitglied: colinardo
22.01.2015, aktualisiert um 18:57 Uhr
Zitat von thomas1972:
eine kleine Frage habe ich da dennoch,
besteht die Möglichkeit die Werte der file in Variablen zwischen zu speichern,
?? Ist es doch oben im Array files. Wenn du es außerhalb der Prozedur verwenden willst musst du eine öffentliche Variable außerhalb der Prozedur deklarieren und diese dann mit dem Array füllen. Dann kannst du später auch noch auf den Inhalt der Variablen zugreifen.

Also dann bspw. so:
01.
' Öffentliche Variable deklarieren 
02.
Dim files() As String 
03.
 
04.
Function UseFileDialogOpen() As String() 
05.
     ' ..... Code nur zur Demo weggelassen 
06.
End Function 
07.
 
08.
'Fülle Variable z.B. in einer Prozedur 
09.
Sub FuelleVariable() 
10.
    files = UseFileDialogOpen 
11.
End Sub 
12.
 
13.
'Benutze die Variable aus einer anderen Prozedur 
14.
Sub UseVariablefromOtherSub() 
15.
    For Each file In files 
16.
        Debug.Print file 
17.
    Next 
18.
End Sub 
19.
 
Bitte warten ..
Ähnliche Inhalte
Firewall
Externer SMTP-Server in UTM einrichten (13)

Frage von Mr.Heisenberg zum Thema Firewall ...

Windows Netzwerk
gelöst FTP-Server per DHCP an Client übergeben (7)

Frage von BarracoBarner zum Thema Windows Netzwerk ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(2)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Windows 10
Windows 10 Home "Netzlaufwerk nicht bereit" (12)

Frage von Oggy01 zum Thema Windows 10 ...

Exchange Server
Exchange Postfach leeren - nicht löschen (10)

Frage von AndreasOC zum Thema Exchange Server ...