Discussion:
Mailversand Name des Anhanges selber definieren
(zu alt für eine Antwort)
Raphel
2008-09-27 13:31:00 UTC
Permalink
Hallo zusammen
In einem Code habe ich eine Funktion erstellt, welche mir aus dem aktiven
Formular den Titel und das Datum eines Feldes holt und mir danach als PDF in
ein Verzeichnis speichert.
Nun möchte ich diese Datei per Mail versenden und dabei den Titel udn das
Datum im Dateinamen verwenden. Leider bekomme ich das nicht hin und mein
Anhang heisst immer gleich wie der Report. Unten der Code wie er bis jetzt
besteht.
Was kann ich machen? Kann mir jemand bitte helfen?
Danke udn Gruss Raphel

' Reports als PDF Versenden
DoCmd.SendObject acSendReport, "Protokoll", "PDF-Format (*.pdf)", "",
"", "", "Protokoll - " & dProtokolltitel & " " & dProtokollDatum, "Hallo
zusammen, als Beilage das Protokoll der " & dProtokolltitel & " vom " &
dProtokollDatum, True, ""
Stefan Dase
2008-09-27 17:36:38 UTC
Permalink
Hallo Raphel!
Post by Raphel
Nun möchte ich diese Datei per Mail versenden und dabei den Titel udn das
Datum im Dateinamen verwenden. Leider bekomme ich das nicht hin und mein
Anhang heisst immer gleich wie der Report. Unten der Code wie er bis jetzt
besteht.
(...)
' Reports als PDF Versenden
DoCmd.SendObject acSendReport, "Protokoll", "PDF-Format (*.pdf)", "",
"", "", "Protokoll - " & dProtokolltitel & " " & dProtokollDatum, "Hallo
zusammen, als Beilage das Protokoll der " & dProtokolltitel & " vom " &
dProtokollDatum, True, ""
Versuche mal, die Beschriftung des Reports zu ändern:
Eigenschaften des Berichts -> Format -> Beschriftung.

Diese kann auch zur Laufzeit gesetzt werden:
Me.Caption = "Hallo Überschrift"

Vielleicht hilft das schon weiter?!
Stefan
Raphel
2008-09-28 06:08:00 UTC
Permalink
Hallo Stefan
Besten Dank, habe das ausprobiert, leider funtioniert das nicht. Ich muss
vielleicht noch etwas genauer werden:

Mit der DoCmd.SendObject acSendReport Anweisung wird anschliessend das
Ausgabeformat definiert: "Protokoll", "PDF-Format (*.pdf)".

Meine Frage, wie kann ich das Ausgabevormat verändern, damit ich einen
Benutzerdefinierten FileNamen erstellen kann.

Danke und Gruss Raphel
Post by Stefan Dase
Hallo Raphel!
Post by Raphel
Nun möchte ich diese Datei per Mail versenden und dabei den Titel udn das
Datum im Dateinamen verwenden. Leider bekomme ich das nicht hin und mein
Anhang heisst immer gleich wie der Report. Unten der Code wie er bis jetzt
besteht.
(...)
' Reports als PDF Versenden
DoCmd.SendObject acSendReport, "Protokoll", "PDF-Format (*.pdf)", "",
"", "", "Protokoll - " & dProtokolltitel & " " & dProtokollDatum, "Hallo
zusammen, als Beilage das Protokoll der " & dProtokolltitel & " vom " &
dProtokollDatum, True, ""
Eigenschaften des Berichts -> Format -> Beschriftung.
Me.Caption = "Hallo Überschrift"
Vielleicht hilft das schon weiter?!
Stefan
Thomas Möller
2008-09-28 08:38:28 UTC
Permalink
Hallo Raphael,
Post by Raphel
Post by Stefan Dase
Post by Raphel
Nun möchte ich diese Datei per Mail versenden und dabei den Titel udn das
Datum im Dateinamen verwenden. Leider bekomme ich das nicht hin und mein
Anhang heisst immer gleich wie der Report. Unten der Code wie er bis jetzt
besteht.
(...)
' Reports als PDF Versenden
DoCmd.SendObject acSendReport, "Protokoll", "PDF-Format (*.pdf)", "",
"", "", "Protokoll - " & dProtokolltitel & " " & dProtokollDatum, "Hallo
zusammen, als Beilage das Protokoll der " & dProtokolltitel & " vom " &
dProtokollDatum, True, ""
Eigenschaften des Berichts -> Format -> Beschriftung.
Besten Dank, habe das ausprobiert, leider funtioniert das nicht. Ich muss
Mit der DoCmd.SendObject acSendReport Anweisung wird anschliessend das
Ausgabeformat definiert: "Protokoll", "PDF-Format (*.pdf)".
Meine Frage, wie kann ich das Ausgabevormat verändern, damit ich einen
Benutzerdefinierten FileNamen erstellen kann.
IMHO kannst Du beim Befehl DoCmd.SendObject den Dateinamen nicht
individuell anpassen.
Du musst in diesem Fall das Dokument erst mittels DoCmd.OutputTo
speichern. Dabei kannst Du den Dateinamen nach Deinen Wünschen festlegen.
Den Versand per E-Mail musst Du dann am Ende per Automation erledigen.

CU
--
Thomas

Homepage: www.Team-Moeller.de
Leuenberger Christian
2008-09-28 09:26:10 UTC
Permalink
Hallo Raphel
ich versende die Reporte direkt aus Access nach einem Beispiel von
Thomas Kessler.

Link zu seiner Beispiel DB
http://www.tksoft-online.de/MS-Access-Bsp.-DB-s/Bsp.-Downloads-Communication/Versenden-von-E-Mails-mit-Dateianhaengen-mittels-CDO-Message-Library.html

Den Report speichere ich zuerst lokal auf die Festplatte.

Public Function CreateReport(str_DirOutput As String, str_RepName As String)
DoCmd.OutputTo acOutputReport, "rep_Teams", acFormatRTF, str_DirOutput &
str_RepName, False
End Function

Gruss
Christian
Post by Raphel
Hallo Stefan
Besten Dank, habe das ausprobiert, leider funtioniert das nicht. Ich muss
Mit der DoCmd.SendObject acSendReport Anweisung wird anschliessend das
Ausgabeformat definiert: "Protokoll", "PDF-Format (*.pdf)".
Meine Frage, wie kann ich das Ausgabevormat verändern, damit ich einen
Benutzerdefinierten FileNamen erstellen kann.
Danke und Gruss Raphel
Post by Stefan Dase
Hallo Raphel!
Post by Raphel
Nun möchte ich diese Datei per Mail versenden und dabei den Titel udn das
Datum im Dateinamen verwenden. Leider bekomme ich das nicht hin und mein
Anhang heisst immer gleich wie der Report. Unten der Code wie er bis jetzt
besteht.
(...)
' Reports als PDF Versenden
DoCmd.SendObject acSendReport, "Protokoll", "PDF-Format (*.pdf)", "",
"", "", "Protokoll - " & dProtokolltitel & " " & dProtokollDatum, "Hallo
zusammen, als Beilage das Protokoll der " & dProtokolltitel & " vom " &
dProtokollDatum, True, ""
Eigenschaften des Berichts -> Format -> Beschriftung.
Me.Caption = "Hallo Überschrift"
Vielleicht hilft das schon weiter?!
Stefan
Raphel
2008-10-13 18:49:01 UTC
Permalink
Hallo zusammen
Ihr alle miteinander konntet mir helfen. Habe Euch dafür den Code hier, habe
eine gute Variante entwickelt:

Public Function ProtokollArchivieren(RepTitel As String, ProtokollDatum As
String)

On Error GoTo fehler

Dim TempVerz As String
Dim dProtokollDatum As String
Dim dProtokolltitel As String
Dim Pfadverzeichnis As Boolean
Dim Jahresverzeichnis As String


' Protokolldatum aus Formular festlegen (Wird kein Datensatz gefunden, wird
"nicht definiert" geschrieben)
dProtokollDatum = ProtokollDatum
If dProtokollDatum = "" Then dProtokollDatum = "Nicht definiert"

' Protokolltitel aus Formular festlegen (Wird kein Datensatz gefunden, wird
"nicht definiert" geschrieben)
dProtokolltitel = RepTitel
If dProtokolltitel = "" Then dProtokolltitel = "Nicht definiert"

' Temp-Verzeichnis festlegen (wird das Verzeichnis nicht gefunden wird in
die Root gespeichert)
TempVerz = DatenbankPfad()
If TempVerz = "" Then TempVerz = "c:"

' Reports als PDF ins Speicher-Verzeichnis ablegen
Jahresverzeichnis = GetDatum(dProtokollDatum)

Pfadverzeichnis = PfadTesten(TempVerz & "\Data\Protokolle\" &
dProtokolltitel)
If Pfadverzeichnis = False Then MkDir (TempVerz &
"\Data\Protokolle\" & dProtokolltitel)

Pfadverzeichnis = PfadTesten(TempVerz & "\Data\Protokolle\" &
dProtokolltitel & "\" & Jahresverzeichnis)
If Pfadverzeichnis = False Then MkDir (TempVerz &
"\Data\Protokolle\" & dProtokolltitel & "\" & Jahresverzeichnis)

DoCmd.OutputTo acReport, "Protokoll", "PDF-Format (*.pdf)", TempVerz
& "\Data\Protokolle\" & dProtokolltitel & "\" & Jahresverzeichnis &
"\Protokoll - " & dProtokolltitel & " " & dProtokollDatum & ".pdf", False,
"", 0, acExportQualityPrint
ende:
Exit Function

fehler:
Resume ende

End Function

Gruss Rahpel
Jürgen Volke
2008-10-14 05:29:33 UTC
Permalink
Hallo Raphael
Post by Raphel
Hallo zusammen
Ihr alle miteinander konntet mir helfen. Habe Euch dafür den Code hier, habe
Public Function ProtokollArchivieren(RepTitel As String, ProtokollDatum As
String)
On Error GoTo fehler
Dim TempVerz As String
Dim dProtokollDatum As String
Dim dProtokolltitel As String
Dim Pfadverzeichnis As Boolean
Dim Jahresverzeichnis As String
' Protokolldatum aus Formular festlegen (Wird kein Datensatz gefunden, wird
"nicht definiert" geschrieben)
dProtokollDatum = ProtokollDatum
If dProtokollDatum = "" Then dProtokollDatum = "Nicht definiert"
' Protokolltitel aus Formular festlegen (Wird kein Datensatz gefunden, wird
"nicht definiert" geschrieben)
dProtokolltitel = RepTitel
If dProtokolltitel = "" Then dProtokolltitel = "Nicht definiert"
' Temp-Verzeichnis festlegen (wird das Verzeichnis nicht gefunden wird in
die Root gespeichert)
TempVerz = DatenbankPfad()
If TempVerz = "" Then TempVerz = "c:"
' Reports als PDF ins Speicher-Verzeichnis ablegen
Jahresverzeichnis = GetDatum(dProtokollDatum)
Pfadverzeichnis = PfadTesten(TempVerz & "\Data\Protokolle\" &
dProtokolltitel)
If Pfadverzeichnis = False Then MkDir (TempVerz &
"\Data\Protokolle\" & dProtokolltitel)
Pfadverzeichnis = PfadTesten(TempVerz & "\Data\Protokolle\" &
dProtokolltitel & "\" & Jahresverzeichnis)
If Pfadverzeichnis = False Then MkDir (TempVerz &
"\Data\Protokolle\" & dProtokolltitel & "\" & Jahresverzeichnis)
DoCmd.OutputTo acReport, "Protokoll", "PDF-Format (*.pdf)", TempVerz
& "\Data\Protokolle\" & dProtokolltitel & "\" & Jahresverzeichnis &
"\Protokoll - " & dProtokolltitel & " " & dProtokollDatum & ".pdf", False,
"", 0, acExportQualityPrint
Exit Function
Resume ende
End Function
kleine Anmerkung:

warum erstellst du das Verzeichnis nicht gleich in deiner Funktion
PfadTesten, wenn es nicht vorhanden ist?

Gruß Jüürgen

Loading...