Emails von Outlook nach Acces

Hallo liebe wer-weiss-was Gemeinde,

ich möchte gerne eine automatisierte Abfrage schreiben, um Emails aus Outlook 2003 in Access 2003 zu bekommen. Über den Button Externe Daten --> Importieren --> Excange() klappt das nun schon. Aber um mir immer wieder diese Arbeit zu ersparen, würde ich das ganze gerne Automatisieren.

Nun habe ich ein Problem, wie ich Access vermittele, wo er die Mails hin speichert und vorallem welche Informationen ich benötige.

Ich benötige von den Mails lediglich den Betreff und das Erhalten-Datum. Dafür habe ich eine Tabelle „Mails“, wo er die hinspeichern soll.

Mein angefangenes VB-Prog sieht so aus:

Sub Mails()

Dim olApp As Outlook.Application
Dim folder As Object
Dim verz As Object
Dim i As Integer

Set olApp = Outlook.Application

’ Suchen des Postfaches
For Each folder In olApp.Session.Folders
If folder.Name = „Postfach“ Then
’ Eventuell anpassen
Exit For
End If
Next

’ Posteingang suchen
For Each verz In folder.Folders
If verz.Name = „Posteingang“ Then
Exit For
End If
Next

’ Schleife über alle Einträge im Posteingang
For i = 1 To verz.Items.Count
’ Cells(i + 1, 1) = Trim(verz.Items(i).SenderName)
’ Cells(i + 1, 2) = Trim(verz.Items(i).Recipients.Item(1))
Next

Das ganze war für eine Excel-Anwendung und dort hat es auch finktioniert. Wie spreche ich denn nun die Access-Tabellenfelder an, um dort den Eintrag niederzulassen?

Hoffe mir kann jemand helfen.

Liebe Grüße shiny

Hi shiny,

Also folgendes sollte tun, angenommen dein Tabelle heist MailArchiv und die Felder MailSender und MailEmpfaenger und ich habe nicht zu viele Tipfehler, da gerade so eingehackt ohne Livetest.

Dim olApp As Outlook.Application
Dim folder As Object
Dim verz As Object
Dim i As Integer

Dim db as Database
Dim record as Recordset

Set olApp = Outlook.Application

’ Suchen des Postfaches
For Each folder In olApp.Session.Folders
If folder.Name = „Postfach“ Then
’ Eventuell anpassen
Exit For
End If
Next

’ Posteingang suchen
For Each verz In folder.Folders
If verz.Name = „Posteingang“ Then
Exit For
End If
Next

set db = CurrentDb
set record = db.OpenrecordSet(„MailArchiv“)

’ Schleife über alle Einträge im Posteingang
For i = 1 To verz.Items.Count

record.AddNew

’ Cells(i + 1, 1) = Trim(verz.Items(i).SenderName)
’ Cells(i + 1, 2) = Trim(verz.Items(i).Recipients.Item(1))

record!MailSender = Trim(verz.Items(i).SenderName)
record!MailEmpfaenger = Trim(verz.Items(i).Recipients.Item(1))
record.Update

Next

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Peter,

vielen Dank, das funktioniert einwandfrei. SUPER *happy*
1000 Dank

Liebe Grüße shiny