Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Benjamin Baum 1 am September 28, 2019, 11:29:39

Titel: Bericht als PDF per Mail versenden
Beitrag von: Benjamin Baum 1 am September 28, 2019, 11:29:39
Hallo

Folgendes Problem:
In einem Formular habe ich eine Schlatläche die mir ein Mail erstellt in dem unter anderem bis zu 3 Anhänge dabei sein können...

Der Code schaut so aus:

    Const olFolderInbox = 6
    Const olFolderOutbox = 4
    Const olMailItem = 0
    Dim olApp       As Object 'Outlook.Application
    Dim olNamespace As Object 'Outlook.NameSpace
    Dim objMailItem As Object 'Outlook.MailItem
    Dim objFolder   As Object 'Outlook.mapiFolder

   
    Set olApp = CreateObject("Outlook.Application")
    Set olNamespace = olApp.GetNamespace("MAPI")
    Set objFolder = olNamespace.GetDefaultFolder(olFolderInbox)
    Set objMailItem = objFolder.items.Add(olMailItem)
    With objMailItem
        .To = [frmunterTtechMail]![tmail].Value
        .Subject = "Auftragserteilung " & Me.Text27 & "   ++ Interne Nr. " & Me.ID & " ++"
        .Body = "Auftrag...." & vbCrLf & vbCrLf & _
                     "Adresse:" & vbCrLf & _
                     Me.tauftName & vbCrLf & _
                     Me.tauftName2 & vbCrLf & _
                     Me.tauftstr & " " & Me.tauftHNr & vbCrLf & _
                     Me.taufPLZ & " " & Me.tauftOrt & vbCrLf & vbCrLf & vbCrLf & vbCrLf & _
                     "Anfahrtsplan:" & vbCrLf & _
                     "https://www.google.com/maps/place/" & Me.tauftstr & ",+" & Me.tauftHNr & ",+" & Me.taufPLZ & ",+" & Me.tauftOrt & vbCrLf & vbCrLf & vbCrLf & _
                     "Ansprechperson: " & Me.taufKontakt & vbCrLf & _
                     "Tel. Nr.: " & Me.taufTel & vbCrLf & vbCrLf & _
                     "Terminvorgabe: " & Me.taufTerminvorgabe & vbCrLf & vbCrLf & Me.ttext & _
                     vbCrLf & vbCrLf & "Technikerpauschale/Stundensatz: " & Format( _
                     Me.Text39, "Currency") & vbCrLf & "Anfahrtspauschale: " & Format( _
                     Me.Text37, "Currency") & vbCrLf & vbCrLf & vbCrLf & [frmunterTtechMail]! _
                    [tsignatur]
                         
        If tauftr1 <> "" Then .Attachments.Add (tauftr1)
        If tauftr2 <> "" Then .Attachments.Add (tauftr2)
        If tauftr3 <> "" Then .Attachments.Add (tauftr3)

        .Display
    End With
    olApp.ActiveWindow
End Sub

Jetzt möchte ich aber noch einen Bericht in form von einer pdf anhängen. Diese pdf existiert aber nicht als Datei sonder sollte erst erstellt werden aber nicht gespeichert.

Normalerweise habe ich das immer mit "  DoCmd.SendObject acReport, ...." gemacht. Das schaffe ich hier aber nicht...

was mache ich falsch bzw. wie kann ich das machen...??

Danke
Titel: Re: Bericht als PDF per Mail versenden
Beitrag von: DF6GL am September 28, 2019, 11:50:20
Hallo,

siehst Du das nicht etwas zu "kurz"?

ZitatDiese pdf existiert aber nicht als Datei sondern sollte erst erstellt werden aber nicht gespeichert.


Eine "PDF"  ist eine Datei...   Wenn die Daten nicht als "PDF" (Portable Data Format) in eine Datei gespeichert werden sollen, wo sind sie dann zu finden? (Wenn man von dem RAM, das der entspr. PDF-Generator (Postscript, Ghostscript oder andere ) benutzt, mal absieht..


Vielleicht meinst Du aber: eine PDF-Datei erstellen, als Attachment anhängen und anschließend die PDF-Datei auf der HD wieder löschen.
Titel: Re: Bericht als PDF per Mail versenden
Beitrag von: Benjamin Baum 1 am September 28, 2019, 12:09:30
Hallo

Die pdf wird deshalb nicht gespeichert, weil es sich dabei um einen "Arbeitsbericht" handelt. Der wird dann vom Techniker entweder ausgedruckt und ausgefüllt oder am Tablet als pdf ausgfefüllt und retour ins Büro geschickt... deshalb brauche ich ihn nicht speichern.

Ich könnte ihn speichern und verschicken... Dann wird aber jedes mal eine pdf erstell die dann die vorhergehende ersetzt...  wäre wohl eine Möglichkeit.... aber kann ich mir den Umweg nicht ersparen??
Titel: Re: Bericht als PDF per Mail versenden
Beitrag von: trebuh am September 28, 2019, 12:59:39
Hallo,

ZitatIch könnte ihn speichern und verschicken... Dann wird aber jedes mal eine pdf erstell die dann die vorhergehende ersetzt...  wäre wohl eine Möglichkeit.... aber kann ich mir den Umweg nicht ersparen??

Du brauchts ja nur beim Erstellen der "Pdf-Datei" einen neuen Namen zu verwenden. Im Anschluß des Prozederes kannst Du diese Datei ja wieder löschen.

Gruß
Hubert
Titel: Re: Bericht als PDF per Mail versenden
Beitrag von: Benjamin Baum 1 am September 28, 2019, 13:09:07
Hallo Hubert

Habe länger im Netz gesucht.. wie würde das überhaut funktionieren wenn man mehrere pdf´s versenden möchte. "DoCmd.SendObject acReport, ...." funktionert ja nur mit einer Datei. Ich möchte mir den Umweg über die gespeicherte Datei ersparen.

gibt´s da eine Möglichkeit??
Titel: Re: Bericht als PDF per Mail versenden
Beitrag von: DF6GL am September 28, 2019, 13:20:58
Hallo,

ich glaube, du verstehst es nicht.


Es gibt keine nicht gespeicherte PDF-Datei....

Du kannst die PDF-Dateien erstellen (so viel wie Du benötigst), diese als Attachment an die Mail anhängen und anschließend nach Belieben mit diesen Dateien verfahren:  Löschen, umbenennen, verschieben....


ZitatIch möchte mir den Umweg über die gespeicherte Datei ersparen.

Dieser Wunsch ist nicht erfüllbar,  wie oben und vorher beschrieben.

Und was willst Du mit "DoCmd.SendObject acReport"  denn erreichen???

Du hast doch schon eine Prozedur, die eine Email mit Attachements verschickt.... ::)
Titel: Re: Bericht als PDF per Mail versenden
Beitrag von: Benjamin Baum 1 am September 28, 2019, 13:33:04
Ok alles klar

Dann brauche ich nicht weiter zu suchen

vielen dank