Hallo,
ich muss eine Csv Datei erstellen und diese per Email verschicken.
Hab jetzt hierzu nichts gefunden.
Ich hab eine Abfrage : QYR_SPEDITIONSDATEN
Die Daten der Abfrage müssen in eine CSV Datei und diese als Anhang per Email verschickt werden.
Wie man eine CSV DAtei abspeichert weiss ich :
DoCmd.TransferText acExportDelim, "Exportspezifikation_ QYR_SPEDITIONSDATEN", " QYR_SPEDITIONSDATEN", "L:\SPEDITIONEN\LISTEN.txt"
Soweit so gut, aber wie hänge ich diese Datei einfach an einen Email. .. also Outlook soll sich öffenen und die selbe Datei anhängen.
Danke für eure Antworten
Lg Bernie
Hi Bernie,
heute mal nur ein paar Stichworte zum googlen, da keine Zeit für fertige Lösung.
Outlook-Email entwerfen mit:
Set Mail = Applikation.CreateItem(olMailItem)
Mail.Attachments.Add ... für Anhang.
Harald
Hallo Harald,
ersteinmal danke.
Muss man die CSV Datei erst auf den Computer speichern oder kann man die erstellte CSV Datei gleich anhängen ?
Lg Bernie
Hallo,
Zitat...oder kann man die erstellte CSV Datei gleich anhängen
Wenn du die Datei mit der von dir erwähnten Funktion erzeugst ist sie ja physikalisch bereits am Rechner vorhanden.
Da die Angabe von 'FileName' in der TransferText-Funktion optional ist kannst du ja
versuchen die Funktioin ohne diese Angabe in der *.add - Methode von Harald anzuwenden.
Ich habe da aber so meine Zweifel, dass das so funktionieren wird.
Hi Data,
d.h. abspeichern und dann senden oder ?
Gruss
Bernie
Hallo,
versteh die Frage nicht..
Eine csv-Datei ist eine DATEI und wird unter der hier verwendeten Bedeutung auf einem bestimmten Datenträger mit einem bestimmten Namen gespeichert , wie jede andere Datei auch..
Mit "...TransferText acExportDelim..." wird eben eine solche csv-Datei erzeugt und gespeichert, die dann mittels der "Attachments.Add"-Methode an eine EMail (MailItem) angehängt werden kann.
Hallo,
Zitatd.h. abspeichern und dann senden oder ?
JO
DoCmd.TransferText acExportDelim, "Exportspezifikation_ QYR_SPEDITIONSDATEN", " QYR_SPEDITIONSDATEN", "L:\SPEDITIONEN\LISTEN.txt"... damit hast du ja die Datei schon erzeugt und gespeichert! (L:\SPEDITIONEN\LISTEN.txt)
und die hängst du mit der .add - Methode an die Mail.
Wenn du die Datei im Anschluß nicht mehr verwenden willst kannst du sie mit dem KILL-Befehl löschen.
Hallo Ihr Beiden,
also ich habs jetzt so gelöst :
Zitat
gblLong1 = Me.LfdNr '* Abfragekriterium für die Abfrage
DoCmd.TransferText acExportDelim, "Exportspezifikation_SPEDITION_EMONS_Excelliste", "QYR_SPEDITION_EMONS_Excelliste", "L:\SPEDITIONS_DFÜ\SPEDITION_DFÜ.txt"
MsgBox "Die Datei wurde auf dem Server L:\SPEDITIONS_DFÜ\SPEDITION_DFÜ.txt abgelegt!", vbInformation
Dim Email_verschickt_Check As String
Dim Email_verschickt_von As String
If Not IsNull(Me.CurrentUser) Then
Dim FilterSS As String
FilterSS = "[Login_Name]like '" & CurrentUser & "*'"
Email_verschickt_Check = DLookup("Email_Firma", "STAMM_Personal", FilterSS)
End If
If Not IsNull(Email_verschickt_Check) Then
Email_verschickt_von = Email_verschickt_Check
Else
Email_verschickt_von = "xxx@xxxx.de;xxxx@xxxxx.de"
End If
' Email verschicken
'----------------------------------------------------------------------------------------------------
If MsgBox("Wollen eine Email mit den DFÜ Daten verschicken?" _
, vbQuestion + vbYesNo, "Bedienhinweis") = vbYes Then
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
On Error Resume Next
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
'An=""
.To = Me.TU_Email
'Kopieempfänger
.CC = Email_verschickt_von
'Betreff
.Subject = "TEST SPEDITIONSAUFTRAG PER CSV DATEI: " & Me.TU_FirmenName1 & " Ladedatum: " & Me.Ladedatum
'Dokumentenname und Anzeigename in E-Mail
.Attachments.Add Source:="L:\SPEDITIONS_DFÜ\SPEDITION_DFÜ.txt", Type:=olByValue, _
DisplayName:="Konditionenverzeichnis562100 Ausland+RTGS"
'.Attachments.Add Source:=ActiveDocument.FullName, Type:=olByValue, _
'DisplayName:="Konditionenverzeichnis"
.Send
End With
If bStarted Then
oOutlookApp.Quit
End If
Set oItem = Nothing
Set oOutlookApp = Nothing
MsgBox " DFÜ erfolgreich verschickt!"
Else
MsgBox " Sendevorgang wurde abgebrochen!", vbInformation
End If
oder ist das noch einfacher möglich ?
Danke für eure Antworten
gruss Bernie
Hallo,
nur auf den Code an sich eingehend:
DoCmd.TransferText acExportDelim, "Exportspezifikation_SPEDITION_EMONS_Excelliste", "QYR_SPEDITION_EMONS_Excelliste", "L:\SPEDITIONS_DFÜ\SPEDITION_DFÜ.txt"
' diesen Dateinamen würde ich nicht statisch angeben...
MsgBox "Die Datei wurde als auf dem Server L:\SPEDITIONS_DFÜ\SPEDITION_DFÜ.txt abgelegt!", vbInformation
Dim Email_verschickt_Check As String Variant
Dim Email_verschickt_von As String
If Not IsNull(Me.CurrentUser) Then ' ist das ein Formular-Textfeld? Oder soll das der eingeloggte User (Currentuser()-Funktion) sein?
Dim FilterSS As String
FilterSS = "[Login_Name] = '" & CurrentUser() & "'" 'CurrentUser() liefert den Access-Einlog-Namen bei aktiviertem Sicherheitssystem, ansonsten wird "Administrator" geliefert.
' Und warum mit LIKE vergleichen? Der Einlogname sollte GENAU einem registrierten Personalnamen entsprechen.
Email_verschickt_Check = DLookup("Email_Firma", "STAMM_Personal", FilterSS)
End If
If Not IsNull(Email_verschickt_Check) Then
Email_verschickt_von = Email_verschickt_Check
Else
Email_verschickt_von = "xxx@xxxx.de;xxxx@xxxxx.de"
End If
' Email verschicken
'----------------------------------------------------------------------------------------------------
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
If MsgBox("Wollen eine Email mit den DFÜ Daten verschicken?" _
, vbQuestion + vbYesNo, "Bedienhinweis") = vbYes Then
On Error Resume Next
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
'An=""
.To = Me.TU_Email
'Kopieempfänger
.CC = Email_verschickt_von
'Betreff
.Subject = "TEST SPEDITIONSAUFTRAG PER CSV DATEI: " & Me.TU_FirmenName1 & " Ladedatum: " & Me.Ladedatum
'Dokumentenname und Anzeigename in E-Mail
.Attachments.Add Source:="L:\SPEDITIONS_DFÜ\SPEDITION_DFÜ.txt", Type:=olByValue, _
DisplayName:="Konditionenverzeichnis562100 Ausland+RTGS"
' Wie oben wäre eine Variable hier besser
.Send
End With
If bStarted Then
oOutlookApp.Quit
End If
Set oItem = Nothing
Set oOutlookApp = Nothing
MsgBox " DFÜ erfolgreich verschickt!" ' eine "DFÜ" kann man nicht verschicken....
Else
MsgBox " Sendevorgang wurde abgebrochen!", vbInformation
End If
Super vielen Dank
Passt
Lg Bernie