Daten aus Tabelle in Email einfügen

Hallo zusammen,

ich habe ein kleines Problem, meine Daten aus einer Tabelle (tbl_usertabelle_tmp) per Email zu verschicken.

Dabei kriege ich es nicht hin, die Daten zeilenweise auszugeben, um sie im Email-Textfenster anzuzeigen:
(Beispiel)

Hallo liebes A-Team, 

hier meine aktuell geänderten Hardware-Zuordnungen:

geändert am PERS-Nr. [FIL |Serien-Nr] T-Online-Nr UMTS-ID Router Drucker
----------------------------------------------------------------------------------------------------------------

Unter diese gestrichelte Linie sollen die Daten zeilenweise geschrieben werden.

Ich hab schon alles probiert (Print, Debug.Print etc.) - NIX!

Wahrscheinlich ist mein Code auch zu chaotisch:

Dim db As Database
Dim record As Recordset
Dim Mailempfaenger\_1 As String
Dim Mailempfaenger\_CC As String
'------------------------------
Set db = CurrentDb
Set record = db.OpenRecordset("tbl\_usertable\_tmp")
'------------------------------
Mailempfaenger\_1 = "[email protected];[email protected]"
Mailempfaenger\_CC = "[email protected]"
'------------------------------
DoCmd.SendObject acSendNoObject, , , Mailempfaenger\_1, Mailempfaenger\_CC, , "Zuordnung geändert von " & ModangemeldeterUser, "Hallo liebes A-Team, " & \_
vbCrLf & vbCrLf & "hier meine aktuell geänderten Hardware-Zuordnungen:" & \_
vbCrLf & vbCrLf & \_
"geändert am DE-Nr. [FRAL |Serien-Nr] T-Online-Nr UMTS-ID Router Drucker" & \_
vbCrLf & \_
"----------------------------------------------------------------------------------------------------------------" & \_
vbCrLf 
'--------------------------------------------
'---- Hier fängts an, chaotisch zu werden ... \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
'-------------------------------------------- 
record.MoveFirst
Do While Not record.EOF
Print , Me!GEAENDERT\_AM & " " & Me!DE\_Nr & " " & Me!FRAL & " |"
record.MoveNext
Loop

record.Close

Könnt Ihr einem Verzweifelten zum Strohhalm verhelfen?

Danke
moritzbock

Hallo zusammen,

ich habe ein kleines Problem, meine Daten aus einer Tabelle
(tbl_usertabelle_tmp) per Email zu verschicken.

Dabei kriege ich es nicht hin, die Daten zeilenweise
auszugeben, um sie im Email-Textfenster anzuzeigen:

Hallo,

der Nachrichtentext wird als String-Variable an die SendObject-Methode übergeben. Er muss vor Ausführung der Methode komplett übergeben werden. Eine nachträgliche Eingabe in die Mail per Print-Anweisung o.ä. geht nicht.
Hier ein Beispielcode für die Übertragung von Tabelleninhalt in einen Nachrichtentext. Diesen musst Du entsprechend Deinen Bedürfnissen anpassen. Etwas schwierig ist die korrekt formatierte Ausgabe (Spalteninhalte sollen untereinander stehen). Achte darauf, dass Du in Deinem Mailprogramm eine Standardschrift wie Courier o.ä. eingestellt hast, wo jedes Zeichen eine fest definierte Breite hat (gibt es einen bestimmten Begriff für, hab ich aber grad vergessen), sonst hast Du wieder einen „Flattersatz“. Nun der Code:

Sub tester()
Dim record As Recordset
Dim Nachricht As String
Dim LängeF1 As Integer
Dim LängeF2 As Integer

LängeF1 = 10 'Maximalbreite in Zeichen für Feld 1
'alternativ auch: = DMax("Len([Feldname1])", "Tabelle", "")
LängeF2 = 70 'Maximalbreite in Zeichen für Feld 2
'alternativ auch: =DMax("Len([Feldname2])", "Tabelle", "")

Nachricht = "Hallo, hier die aktualisierten Daten:" & vbCrLf
Nachricht = Nachricht & FormWert("Spalte1", LängeF1) & \_
 FormWert("Spalte2", LängeF2) & vbCrLf
Nachricht = Nachricht & String(LängeF1 + LängeF2, "-") & vbCrLf

Set record = CurrentDb.OpenRecordset("Tabelle")
While Not record.EOF
 Nachricht = Nachricht & FormWert(record!Feldname1, LängeF1) & \_
 FormWert(record!Feldname2, LängeF2) & vbCrLf
 record.MoveNext
Wend
record.Close: Set record = Nothing
DoCmd.SendObject acSendNoObject, , , "[email protected]", "[email protected]", , "Betreff", Nachricht
End Sub

Function FormWert(Wert As String, LängeMax As Integer) As String
'gibt einen Text bis zu Maximalbreite aufgefüllt mit Leerzeichen zurück
'notwendig zur strukturierten Darstellung der Tabellenwerte
FormWert = Wert & Space(LängeMax - Len(Wert) + 1)
End Function

Viel Spaß beim Probieren.

Gruß, tester!

Hallo tester,

Dein Code hat mir - in abgewandelter Form - wirklich sehr weitergeholfen. Vielen Dank und ein * dafür …

Hallo zusammen,

ich habe ein kleines Problem, meine Daten aus einer Tabelle
(tbl_usertabelle_tmp) per Email zu verschicken.

Dabei kriege ich es nicht hin, die Daten zeilenweise
auszugeben, um sie im Email-Textfenster anzuzeigen:

Hallo,

der Nachrichtentext wird als String-Variable an die
SendObject-Methode übergeben. Er muss vor Ausführung der
Methode komplett übergeben werden. Eine nachträgliche Eingabe
in die Mail per Print-Anweisung o.ä. geht nicht.

Sowas hatte ich mir auch schon überlegt :wink:

Hier ein Beispielcode für die Übertragung von Tabelleninhalt
in einen Nachrichtentext. Diesen musst Du entsprechend Deinen
Bedürfnissen anpassen. Etwas schwierig ist die korrekt
formatierte Ausgabe (Spalteninhalte sollen untereinander
stehen). Achte darauf, dass Du in Deinem Mailprogramm eine
Standardschrift wie Courier o.ä. eingestellt hast, wo jedes
Zeichen eine fest definierte Breite hat (gibt es einen
bestimmten Begriff für, hab ich aber grad vergessen), sonst
hast Du wieder einen „Flattersatz“.
Gruß, tester!

Nochmals Danke für Deine Mühe und viele Grüße vom
moritzbock