Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage in csv-Datei via Email verschicken

Begonnen von Bernie110, Oktober 04, 2012, 17:47:51

⏪ vorheriges - nächstes ⏩

Bernie110

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


bahasu

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
Servus

Bernie110

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

database

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.

Bernie110

Hi Data,

d.h. abspeichern und dann senden oder ?

Gruss
Bernie

DF6GL

#5
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.


Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

database

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.

Bernie110

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

DF6GL

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

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Bernie110