Auslesen von E-Mails über Access
Hallo zusammen,
ich habe eine Access Datenbank mit der ich E-Mails aus Outlokk erfasse. Beid er Erfassung wird aber stets die neueste Mail zuerst eingelesen. Was muss ich am Code ändern, damit die älteste Mail zuerst eingelsen wird?
DBS2.Open "tab_Anlage", Conn, adOpenKeyset, adLockOptimistic
DBS.Open "Tab_Postbuch", Conn, adOpenKeyset, adLockOptimistic
intGes = Out.Items.Count
intz = 0
inty = ID
For intz = intGes To 1 Step -1
With Out.Items(intz)
inty = inty + 1
Str_Mailbetreff = .Subject
Str_Mailinhalt = .Body
ich bin für jeden Hinweis dankbar.
Gruß
Florian
ich habe eine Access Datenbank mit der ich E-Mails aus Outlokk erfasse. Beid er Erfassung wird aber stets die neueste Mail zuerst eingelesen. Was muss ich am Code ändern, damit die älteste Mail zuerst eingelsen wird?
DBS2.Open "tab_Anlage", Conn, adOpenKeyset, adLockOptimistic
DBS.Open "Tab_Postbuch", Conn, adOpenKeyset, adLockOptimistic
intGes = Out.Items.Count
intz = 0
inty = ID
For intz = intGes To 1 Step -1
With Out.Items(intz)
inty = inty + 1
Str_Mailbetreff = .Subject
Str_Mailinhalt = .Body
ich bin für jeden Hinweis dankbar.
Gruß
Florian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 347830
Url: https://administrator.de/forum/auslesen-von-e-mails-ueber-access-347830.html
Ausgedruckt am: 22.04.2025 um 03:04 Uhr
7 Kommentare
Neuester Kommentar

Moin,
k.A. ob das (neben OnePlus' Vorschlag) funktioniert, aber aktuell gehst du beim Zählen ja Rückwärts im Code, ändere das doch u.U mal so ab:
k.A. ob das (neben OnePlus' Vorschlag) funktioniert, aber aktuell gehst du beim Zählen ja Rückwärts im Code, ändere das doch u.U mal so ab:
DBS2.Open "tab_Anlage", Conn, adOpenKeyset, adLockOptimistic
DBS.Open "Tab_Postbuch", Conn, adOpenKeyset, adLockOptimistic
intGes = Out.Items.Count
intz = 0
inty = ID
For intz = 1 To intGes Step 1
With Out.Items(intz)
inty = inty + 1
Str_Mailbetreff = .Subject
Str_Mailinhalt = .Body
Next

@em-pie
Das ist dann aber abhängig von der aktuellen Sortierung im Outlook
. Dann doch lieber gleich mit "Sort" auf die Property ReceivedTime in aufsteigender Sortierung dann ist das auch verlässlich.
Das ist dann aber abhängig von der aktuellen Sortierung im Outlook
set itms = out.items
itms.Sort "ReceivedTime", False
for each mail in itms
msgbox mail.Subject
Next

Fuinktioniert aber auch nicht. Ist da möglicherweise ein falscher Syntax?
Funktioniert deshalb erstens nicht weil du die Items keiner Variablen zuweist und zweitens mit dem "True" "absteigend" sortierst !! Und du mixt das ganze auch noch indem du den Sortiervorgang in die Schleife legst, koppschüttel, sorry.Siehe dir mein Beispiel mal bite ganz genau an!

beim folgenden Speichern wird aber wieder ist jüngste genommen.
Kein Wunder du gehst ja wieder rückwärts und verwendest die falsche Variable!! Und warum machst du es nicht direkt in der Foreach-Schleife???Man oh man echt schwer von Begriff heute die TOs.
Set itms = Out.Items
itms.Sort "ReceivedTime", False
For Each mail In itms
Str_Mailbetreff = mail.Subject
Str_Mailinhalt = mail.Body
' hier speichern ....
Next
I'm out, that's really annoying.