E-Mail Betreff mit Datensatz Information versehen

Moderator: ModerationP

E-Mail Betreff mit Datensatz Information versehen

Beitragvon leparain » 16. Okt 2019, 09:14

Hallo zusammen :)

Habe leider nichts dazu gefunden und hoffe Ihr könnt mir weiterhelfen.

Ich lass über einen Button einen Bericht als PDF in eine E-mail anhängen - Gibt es die Möglichkeit dem Betreff und dem PDF die Datensatznummer zu vergeben? Kann man ggf. auch andere Tabellenfelder ansprechen und anzeigen lassen?

So sieht die E-Mail prozedur aus:
Code: Alles auswählen
Private Sub Befehl79_Click()
 Dim strBerichtsname As String
 Dim strWhereCondition As String
 Dim strDateipfad As String
 Dim strEmpfänger As String
 Dim strBetreff As String
 Dim strNachricht As String
 Dim strHTMLNachricht As String
 
 'Parameter-Beispiele:
 
 'Berichtsname
 strBerichtsname = "BERICHTE"
 
 'Pfad und Name der pdf-Datei
 'Achtung: Wenn eine pdf-Datei mit gleichem Namen bereits existiert,
 'wird sie ohne Warnhinweis überschrieben!
 strDateipfad = CurrentProject.Path & "\Archiv\" & "DOKUMENTNAME.pdf"
 
 'Mailadresse des Empfängers
 strEmpfänger = " "
 
 'Mail-Betreff
 strBetreff = "E-Mail Betreff"
 
 'oder alternativ Beispiel für HTML-Textnachricht (ggf. mit einem HTML-Editor erzeugen)
 strHTMLNachricht = "E-Mail Nachricht"

 
 'Beispiel 3: Mail öffnen, HTML-Text
 Call PDFBerichtPerMail(strBerichtsname, strWhereCondition, strDateipfad, _
                        strEmpfänger, strBetreff, strHTMLNachricht, True)
End Sub


Das zugehörige Modul:
Code: Alles auswählen
Public Sub PDFBerichtPerMail(ByVal Berichtsname As String, _
                             ByVal WhereCondition As String, _
                             ByVal Dateipfad As String, _
                             ByVal Empfänger As String, _
                             ByVal Betreff As String, _
                             ByVal Nachricht As String, _
                             Optional HTML As Boolean = False, _
                             Optional SofortSenden As Boolean = False)
 
 'Bericht per Mail als pdf-Datei-Anhang über Outlook versenden
 'Late-Binding-Variante, kein Verweis auf Microsoft Outlook xx.x Object Library notwendig
 'Quelle: www.dbwiki.net oder www.dbwiki.de
 
 Dim objApp As Object   'Outlook Application
 Dim objItem As Object  'Nachrichten Objekt
 Const olMailItem = 0
 Const olFormatPlain = 1
 Const olFormatHTML = 2
 
 
 'Schritt 1: Bericht als pdf-Datei erzeugen
 
 'Bericht gefiltert öffnen
 DoCmd.OpenReport Berichtsname, acViewPreview, , WhereCondition, acHidden
 
 'pdf-Datei erzeugen
 DoCmd.OutputTo acOutputReport, Berichtsname, acFormatPDF, Dateipfad
 
 'Bericht schließen
 DoCmd.Close acReport, Berichtsname, acSaveNo
 
 
 'Schritt 2: pdf-Datei per Outlook-Anhang versenden
 'Hinweis: Wenn ein Parameterwert direkt aus einem Formularfeld ausgelesen werden soll,
 'muß die Eigenschaft .Value explizit gesetzt werden, z.B. objItem.To = Me!MeinTextfeld.Value
 
 'Erzeugen einer Outlook-Instanz
 Set objApp = CreateObject("Outlook.Application")
 
 'Erzeugen einer Mail-Nachricht
 Set objItem = objApp.CreateItem(olMailItem)
 
 'Empfänger
 objItem.To = Empfänger
 
 'Betreff
 objItem.Subject = Betreff
 
 'Nachricht im HTML-Format
 If HTML = True Then
   objItem.BodyFormat = olFormatHTML
   objItem.htmlbody = Nachricht
 
 'Nachricht im Plaintext-Format
 Else
   objItem.BodyFormat = olFormatPlain
   objItem.BODY = Nachricht
 End If
 
 'Anhang anfügen
 objItem.Attachments.Add Dateipfad
 
 'Mail sofort versenden, ohne Outlook zu öffnen
 If SofortSenden = True Then
   objItem.Send
 'Mail in Outlook anzeigen, manuell versenden
 Else
   objItem.Display
 End If
 
 Set objItem = Nothing
 Set objApp = Nothing
 
End Sub


Vielen Dank und Gruß,
Adam
leparain
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 12. Sep 2019, 15:03

Re: E-Mail Betreff mit Datensatz Information versehen

Beitragvon Bitsqueezer » 16. Okt 2019, 09:52

Hallo,

Deine Funktion "PDFBerichtPerMail" hat doch einen Betreff-Parameter, den Du mit allem füllen kannst, was Du willst. Auch der Nachrichtentext kann natürlich beliebig angepaßt werden.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7210
Registriert: 21. Jun 2007, 12:17

Re: E-Mail Betreff mit Datensatz Information versehen

Beitragvon leparain » 16. Okt 2019, 11:43

Danke für deine Antwort !

Kannst du mir vielleicht einen Schritt weiterhelfen?

Hatte jetzt so versucht im Betreff das Datum aus einem Bezeichnungsfeld darstellen zu lassen:
Debug.Print Me!Bezeichnungsfeld18.Value

Code: Alles auswählen
 'Mail-Betreff
 strBetreff = "BETREFF" & Debug.Print Me!Bezeichnungsfeld18.Value


Funktioniert aber leider nicht
leparain
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 12. Sep 2019, 15:03

Re: E-Mail Betreff mit Datensatz Information versehen

Beitragvon Joss » 16. Okt 2019, 12:09

Hallo leparain,

vielleicht so:
Code: Alles auswählen
strBetreff = "BETREFF: " & Me!Bezeichnungsfeld18.Caption


Gruß
Josef
Joss
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 194
Registriert: 20. Okt 2012, 11:38

Re: E-Mail Betreff mit Datensatz Information versehen

Beitragvon leparain » 16. Okt 2019, 12:15

Vielen Dank für die Hilfe.

Leider kommt der Fehler:
(Bitte entschuldigt, wenn die Lösung auf der Hand liegt....
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
leparain
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 12. Sep 2019, 15:03

Re: E-Mail Betreff mit Datensatz Information versehen

Beitragvon Joss » 16. Okt 2019, 12:21

Hallo leparain,

aus deinem Bezeichnungsfeld aus deiner letzen Antwort ist plötzlich ein Textfeld geworden.
Damit wird aus Caption dann Value.

Code: Alles auswählen
Me!Text49.Value
' oder ohne .Value: Me!Text49


Gruß
Josef
Joss
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 194
Registriert: 20. Okt 2012, 11:38

Re: E-Mail Betreff mit Datensatz Information versehen

Beitragvon Bitsqueezer » 16. Okt 2019, 12:47

Hallo,

man sollte auch einfach mal VBA lernen und dann auch mal die Hilfe lesen. Wie kommt man darauf, einen BEFEHL ("Debug.Print", genaugenommen natürlich eine Methode des Debug-Objektes) an einen String anhängen zu wollen? "Debug.Print" gibt einen Text im Direktfenster aus, führt also eine Aktion aus.

Ich verstehe solche Konstrukte nicht. Das ist pure Copy/Paste-Programmierung, bloß nicht zuviel lernen...könnte wehtun.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7210
Registriert: 21. Jun 2007, 12:17

Re: E-Mail Betreff mit Datensatz Information versehen

Beitragvon leparain » 16. Okt 2019, 13:26

Joss hat geschrieben:Hallo leparain,

aus deinem Bezeichnungsfeld aus deiner letzen Antwort ist plötzlich ein Textfeld geworden.
Damit wird aus Caption dann Value.

Code: Alles auswählen
Me!Text49.Value
' oder ohne .Value: Me!Text49


Gruß
Josef


Vielen Dank für die Hilfe :) !
leparain
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10
Registriert: 12. Sep 2019, 15:03


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste