VBOffice

Kontaktdaten von Access nach Outlook kopieren

Dieses Beispiel demonstriert, wie Sie per VBA eine Access-Datenbank öffnen und die Daten einer Tabelle als Kontakte in Outlook speichern.

Zuletzt geändert: 06.08.2015 | Aufrufe: 63.935  | #67
◀ Vorheriges Beispiel Nächstes Beispiel ▶
Reporter Reporter
Mit dem Reporter erstellen Sie Berichte für Ihre Outlook Daten. Mit wenigen Klicks werden Werte aus Aufgaben, Terminen und dem Journal summiert.

Mit wenigen Zeilen Code können Sie Datensätze aus einer Access-Datenbank nach Outlook kopieren. In diesem Beispiel werden aus der Tabelle 'Customers' die Felder 'Fullname' und 'EMailAddress' gelesen, und für jeden gefundenen Datensatz wird ein Kontakt in Outlook erstellt.

Ändern Sie in der Prozedur 'ConnectDB' die Werte für die Variablen 'File' (Dateiname Ihrer Access-Datenbank), 'Fields' (Liste der abzurufenden Felder) und 'Table' (Name der Datenbanktabelle). In der Prozedur 'AddContactsFromAccess' wiederholen Sie dann die Feldnamen wie dargestellt und schreiben die Werte in die passenden ContactItem-Eigenschaften.

Damit Sie das Beispiel so nutzen können, fügen Sie über Extras/Verweise noch eine Referenz auf eine 'Microsoft ActiveX Data Objects x Library' hinzu. Wenn Ihnen mehrere dieser Bibliotheken zur Verfügung stehen, verwenden Sie am besten die aktuellste. Für Access 2007-Datenbanken (*.accdb-Datei) und neuer ist mindestens Version 6.0 nötig.


tip  So fügen Sie Makros in Outlook ein
Private m_Cn As ADODB.Connection
Private m_Rs As ADODB.Recordset

Public Sub AddContactsFromAccess()
  Dim Contact As Outlook.ContactItem
  Dim Name As String
  Dim Fields As ADODB.Fields

  ConnectDB
  Set Fields = m_Rs.Fields

  While Not m_Rs.EOF
    Set Contact = Application.CreateItem(olContactItem)

    Name = "Fullname"
    If IsNull(Fields(Name).Value) = False Then
      Contact.FullName = Fields(Name).Value
    End If

    Name = "EMailAddress"
    If IsNull(Fields(Name).Value) = False Then
      Contact.FullName = Fields(Name).Value
    End If

    Contact.Save
    m_Rs.MoveNext
  Wend

  m_Rs.Clone: Set m_Rs = Nothing
  m_Cn.Close: Set m_Cn = Nothing
End Sub

Private Sub ConnectDB()
  Dim File As String
  Dim Table As String
  Dim Fields As String

  File = "c://test.accdb"

  Fields = "Fullname, EMailAddress"
  Table = "Customers"

  Set m_Cn = New ADODB.Connection
  With m_Cn
    'Access 2007 oder neuer (*.accdb-Datei) 
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    'Access 2003 oder älter (*.mdb-Datei) 
    '.Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = File
    .CursorLocation = adUseClient
    .Mode = adModeShareDenyNone
    .Open
  End With

  Set m_Rs = New ADODB.Recordset
  With m_Rs
    .CursorLocation = adUseClient
    .CursorType = adOpenStatic
    .LockType = adLockOptimistic
    Set .ActiveConnection = m_Cn
    .Open ("SELECT " & Fields & " FROM " & Table)
  End With
End Sub
ReplyAll ReplyAll
Mit diesem Addin für Outlook erhalten Sie in verschiedenen Situationen eine Warnung, bevor Sie auf eine Email versehentlich allen anderen Empfängern antworten.
email  Senden Sie eine Nachricht