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
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
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
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
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
Hallo Ben,
mit der DoCmd.OutputTo-Methode kannst du einen Bericht unter einem bestimmten Dateinamen und in einem bestimmten Format erstellen.
Gruß Knobbi38
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
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
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
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
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
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
Hallo Ulli, da hast du recht habe ich bei dem kleinen Muster vergessen.
Asche auf mein Haupt =)))
Holger