Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: ben_brooke am Mai 04, 2025, 08:44:40

Titel: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: ben_brooke am Mai 04, 2025, 08:44:40
Moin,
ich habe folgendes programmiert: Eine bekannte Vorgehensweise
   
'strDateiname = Me!Text575 & "Nutzung" & Me!Kombinationsfeld217 & " " & Me!Text586 & " " & Me!Kombinationsfeld215 & ".xls"

DoCmd.SendObject acSendQuery, "abf_WVG_RVM_8", acFormatXLS, "Name_Test@web.de", , , _
                    "Email mit Abfrage als Excel-Datei", "Dies ist der Text der Email.", True

Aus einer Abfrage wird eine XLS Datei generiert und diese per Anhang an die RE-Mail angehängt.
Das funktioniert seht gut.
Jetzt möchte ich aber nicht das die XLS Datei den Namen der Abfrage als Anhang hat sondern möchte wie in der Zeile darüber "strDateiname" aufgezeigt einen variablen Dateinamen bekommen.
Meine Frage: Wie kann ich den den strDateiname dort intrigieren? Oder was muss ich ändern.
Vielen Dank für die Hilfe
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: Knobbi38 am Mai 04, 2025, 09:21:39
Hallo,

du mußt vorher die XL-Datei temporär mit dem gewünschten Namen abspeichern und dann als Anhang an die Mail anhängen.
Allerdings würde man üblicherweise eine Rechnung nicht als XL-Datei versenden, sondern als PDF-Datei., weil XL-Dateien in vielen Firewalls als Anhang gesperrt  sind.

Gruß
Knobbi38
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: ben_brooke am Mai 04, 2025, 09:37:45
Moin,
das mit der Firewall ist ein interessanter Hinweis. .
Aber meine Frage dazu:
Wenn ich die XLS oder CSV temporär abspeichere und dann hat diese ja immer einen variablen Namen. Wie bekomme ich das dann als Anhang hin 
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: Knobbi38 am Mai 04, 2025, 10:14:06
Hallo Ben,

wie man per Outlook eine Mail versendet und dabei eine Datei als Anhang mitgibt, ist nun hinreichend im Forum beschrieben worden. Ich glaube nicht, daß man diesen Code jetzt nochmal hier posten extra müßte. Einfach mal im Forum danach suchen. Wenn du nicht weiter kommst, kurz Bescheid geben.

Gruß Knobbi38


Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: ben_brooke am Mai 04, 2025, 12:13:55
Moin knobbi38, ja das ist richtig aber es ist immer eine PDF als Anhang vorgesehen. Das läuft bei einen anderen Bericht bei mir auch.
Der Code greift auf einen Bericht zu dessen Name immer gleich ist. Die variable des Dateinamen der PDF kommt dann von den im Bericht im Eigenschaftsblatt "unter beim Öffnen" abgelegte Variable.

Und genau da liegt mein Thema. Den Namen der XLS Datei mit variablen.
Dazu habe ich noch nicht Forum gefunden bzw. habe noch nicht die richtigen Suchwörter eingegeben
Gruß Ben
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: Knobbi38 am Mai 04, 2025, 12:25:55
Hallo Ben,

mit der DoCmd.OutputTo-Methode kannst du einen Bericht unter einem bestimmten Dateinamen und in einem bestimmten Format erstellen.

Gruß Knobbi38
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: ben_brooke am Mai 04, 2025, 14:58:06
Moin Knobbi38,
auch das mit der DoCMD.OutputTo Methode habe ich jetzt auch hinbekommen.
automatisch wird Excel geöffnet und die Datei angezeigt und beim speichern hat sie den variablen Namen.

DoCmd.OutputTo acOutputTable, "WVG_RVM_4", _
'acFormatXLS, Me!Text575 & " " & "Nutzung" & " " & Me!Kombinationsfeld217 & " " & Me!Kombinationsfeld215 & " " & Me!Text586 & ".xls",

Ich bin nicht so fit in der Sache aber wie kann ich jetzt die DoCMD.OutpotTo Methode mit der DoCmd.SendObject acSendQuery aus dem EMail versandt verknüpfen.
Gruß Ben

Vielleicht kann man mir da noch einmal auf die Sprünge helfen

Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: Debus am Mai 04, 2025, 16:23:57
Hey,

Du machst das einfach der Reihe nach.

1. Output
2. Send

einfach so als wenn Du etwas Bauen würdest erst das Fundament dann das Haus.

Holger
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: Knobbi38 am Mai 04, 2025, 16:26:03
Hallo Ben,

da wird nichts verknüpft und hat auch nichts mit SendObject zu tun (das hatten wir schon mal, oder?).
Nachdem die Datei erzeugt worden ist, öffnest du Outlook per Automation, erstellst eine neue Mail, weist dem Mail-Body den gewünschten Text zu und fügst deine Datei als Anhang an. Anschließend kannst du die temporäre Datei wieder löschen.

Wie bereits gesagt, gibt es dafür schon unzählige Beispiele, einfach mal danach im Forum suchen.

Gruß Knobbi38
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: Debus am Mai 04, 2025, 16:31:04
Hallo Ulli, wie ich schon geschrieben habe, aber ich glaube das mit dem Senden ist vielleicht nicht eindeutig für Ben :=))

Vielleicht mal ein Muster zum verdeutlichen für Ben

Dim olApp As Object
Dim olMail As Object

Set olApp = CreateObject("Outlook.Application")
Set olMail = olApp.CreateItem(0)

With olMail
    .To = "Mailadresse"
    .Subject = "Deine Betreffzeile"
    .Body = "Dein Mustertext."
    .Attachments.Add "C:\Pfad\Bericht.xls"   oder auch als Variable
    .Send
End With

Gruß
Holger

und alle eine schönes Restwochenende
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: Debus am Mai 04, 2025, 16:36:43
Sorry ich wollte auch nochmal an #1 und die Firewall erinnern!!! Bei den meisten Unternehmen wird sowas gefiltert. Also entweder gar nicht weitergegeben oder es bleibt in einer Quarantäne bis die Datei x-mal mit einen Virenscanner geprüft wurde. Und sollte dort ein Makro enthalten sein kommt es in guten Unternehmen garantiert nicht durch. Also pdf

Alles andere ist nicht gut
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: Knobbi38 am Mai 04, 2025, 16:58:24
Noch eine kleine Anmerkung zum Code aus #9:

Bitte nicht das Freigeben der verwendeten Ressourcen vergessen, sonst kann das bei COM-Automation schnell schiefgehen:
   'Clean up the Outlook application.
   Set olMail= Nothing
   Set olApp = Nothing

Wenn Outlook durch den Code gestartet wird, sollte man Outlook auch wieder beenden, ansonsten einfach nur die Automation  beenden. Das wäre dann das I-Tüpfelchen, ist aber für zu Hause nicht notwendig.

Gruß Knobbi38
Titel: Re: E_Mail versandt mit CSV Datei und variablen Namen
Beitrag von: Debus am Mai 04, 2025, 17:03:35
Hallo Ulli, da hast du recht habe ich bei dem kleinen Muster vergessen.

Asche auf mein Haupt =)))

Holger