Hallo zusammen,
ich möchte meine Kontakte exportieren. Leider bleibt das Programm an der Stelle hängen => Fehler:
System.InvalidCastException: "Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Microsoft.Office.Interop.Outlook.ContactItem" umgewandelt werden.
An was könnte das liegen?
So geht es leider auch nicht:
Vielen Dank für Eure Hilfe.
Goog
ich möchte meine Kontakte exportieren. Leider bleibt das Programm an der Stelle hängen => Fehler:
Quellcode
- Dim olAnwendung As Microsoft.Office.Interop.Outlook.Application
- Dim olNamespace As Microsoft.Office.Interop.Outlook.NameSpace
- Dim olKontaktordner As Microsoft.Office.Interop.Outlook.MAPIFolder
- Dim olKontakte As Microsoft.Office.Interop.Outlook.Items
- Dim olKontakt As Microsoft.Office.Interop.Outlook.ContactItem
- Dim Unterordner As Microsoft.Office.Interop.Outlook.Folders
- Dim AnzahlUnterordner As Integer
- Dim i As Integer
- olAnwendung = New Microsoft.Office.Interop.Outlook.Application
- olNamespace = olAnwendung.GetNamespace("MAPI")
- olKontaktordner = olNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts)
- olKontakte = olKontaktordner.Items
- Debug.Print(olKontaktordner.Name)
- ListBox1.Items.Add(olKontaktordner.Name)
- For Each olKontakt In olKontakte ' =>>>>>> Fehler
- Debug.Print(" " & olKontakt.FirstName & " " & olKontakt.LastName & " " & olKontakt.Email1Address)
- ListBox1.Items.Add(" " & ii & " " & olKontakt.FirstName & " " & olKontakt.LastName & " " & olKontakt.Email1Address & " " & olKontakt.BusinessTelephoneNumber)
- ii = ii + 1
- Next
- Unterordner = olKontaktordner.Folders
- AnzahlUnterordner = Unterordner.Count
- For i = 1 To AnzahlUnterordner
- olKontakte = Unterordner.Item(i).Items
- Debug.Print(Unterordner.Item(i).Name)
- ListBox1.Items.Add(Unterordner.Item(i).Name)
- For Each olKontakt In Unterordner.Item(i).Items
- Debug.Print(" " & ii & olKontakt.FirstName & " " & olKontakt.LastName & " " & olKontakt.Email1Address)
- ListBox1.Items.Add(" " & olKontakt.FirstName & " " & olKontakt.LastName & " " & olKontakt.Email1Address & " " & olKontakt.BusinessTelephoneNumber)
- ii = ii + 1
- Next
- Next
System.InvalidCastException: "Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Microsoft.Office.Interop.Outlook.ContactItem" umgewandelt werden.
An was könnte das liegen?
So geht es leider auch nicht:
Quellcode
- ' Create Outlook application.
- Dim objOutlook As Microsoft.Office.Interop.Outlook.Application = New Microsoft.Office.Interop.Outlook.Application()
- ' Get NameSpace and Logon.
- Dim objOutlookoNS As Microsoft.Office.Interop.Outlook.NameSpace = objOutlook.GetNamespace("mapi")
- objOutlookoNS.Logon("Outlook", Missing.Value, False, True)
- Dim outLookContacts As Microsoft.Office.Interop.Outlook.MAPIFolder = objOutlookoNS.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts)
- Dim outLookItems As Microsoft.Office.Interop.Outlook.Items = outLookContacts.Items
- Dim dtContacts As New DataTable
- dtContacts.Columns.Add("Name")
- dtContacts.Columns.Add("Email")
- Dim drContact As DataRow
- 'Dim oCt
- For Each oCt As Microsoft.Office.Interop.Outlook.ContactItem In outLookItems
- drContact = dtContacts.NewRow
- drContact("Name") = oCt.FullName
- drContact("Email") = oCt.Email1Address
- dtContacts.Rows.Add(drContact)
- Next
- DataGridView1.DataSource = dtContacts
- objOutlookoNS.Logoff()
- objOutlookoNS = Nothing
- outLookItems = Nothing
- objOutlook = Nothing
Vielen Dank für Eure Hilfe.
Goog