Forums Neueste Beiträge
 

Outlook Kontakte

16/02/2010 - 13:36 von Karsten Heddenhausen | Report spam
Moin, moin!

Folgende Routine habe ich mir erstmal zur testweisen Ausgabe meiner
Outlook-Kontakte erstellt:

Private Sub leseKontakte()
Dim sName As String = ""
Dim lCnt As Long = 0
For Each olKontaktItem As
Microsoft.Office.Interop.Outlook.ContactItem In olKontakte.Items
lCnt = lCnt + 1
Try
If olKontaktItem.MessageClass = "IPM.Contact" Then
sName = lCnt.ToString & "/" & olKontakte.Items.Count
& ":"
If olKontaktItem.FirstName IsNot Nothing Then
If Len(sName) > 0 Then sName = sName & " "
sName = sName & olKontaktItem.FirstName
End If
If olKontaktItem.LastName IsNot Nothing Then
If Len(sName) > 0 Then sName = sName & " "
sName = sName & olKontaktItem.LastName
If olKontaktItem.LastName = "Sehrt" Then Stop
End If
If olKontaktItem.CompanyName IsNot Nothing Then
If Len(sName) = Len(lCnt.ToString & "/" &
olKontakte.Items.Count & ":") Then
sName = sName & " " &
olKontaktItem.CompanyName
End If
End If
sName = sName & ": " & olKontaktItem.MessageClass
Debug.Print(sName)
End If
Catch ex As Exception
Debug.Print(ex.Message.ToString)
Stop
End Try
Next
End Sub

Irgendwann, aber immerhin immer an der gleichen Stelle, schmeisst mit
das Programm eine Meldung in's Debug-Fenster und das war es dann. Bloß
mit der Meldung kann ich irgendwie nichts anfangen:

Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist
in OL2010Sync.exe aufgetreten.
Einzelschritt: Nichtbenutzercode
"System.Windows.Forms.Control.WmShowWindow" wird übersprungen.
Einzelschritt: Nichtbenutzercode
"System.Windows.Forms.NativeWindow.DebuggableCallback" wird
übersprungen.
Einzelschritt: Nichtbenutzercode
"System.Windows.Forms.Control.SetVisibleCore" wird übersprungen.
Einzelschritt: Nichtbenutzercode
"System.Windows.Forms.Form.SetVisibleCore" wird übersprungen.
Einzelschritt: Nichtbenutzercode
"System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner"
wird übersprungen.

Die Fehlermeldung wird beim Abarbeiten des "Next" produziert. Hat da wer
irgendwelche Ideen?

Gruß, Karsten
 

Lesen sie die antworten

#1 Roland Ließ
17/02/2010 - 12:50 | Warnen spam
Hallo Karsten,

InvalidCastException, da wird wohl ein Datentyp der ien einen anderen
gecastet wird nicht passen.

Setz doch mal einen Break Point und geh den Code mit dem Debugger durch.

Wenn ich mir diese Zeile mal anschaue
'lCnt.ToString& "/"& > olKontakte.Items.Count& ":"'
Ich würde ...'olKontakte.Items.Count.ToString & ":"' schreiben.
Auf das implizite casten eines Long in einer Zeichenkette würde ich
nicht setzen, zumal bei lCnt.ToString explizit convertiert wurde.

Was ich persönlich finde das das direkte setzen des Operators & hinter
ToString& bzw Count& die lesbarkeit des Codes erschwert.

Folgende Routine habe ich mir erstmal zur testweisen Ausgabe meiner
Outlook-Kontakte erstellt:

Private Sub leseKontakte()
Dim sName As String = ""
Dim lCnt As Long = 0
For Each olKontaktItem As
Microsoft.Office.Interop.Outlook.ContactItem In olKontakte.Items
lCnt = lCnt + 1
Try
If olKontaktItem.MessageClass = "IPM.Contact" Then
sName = lCnt.ToString& "/"& olKontakte.Items.Count
& ":"
If olKontaktItem.FirstName IsNot Nothing Then
If Len(sName)> 0 Then sName = sName& ""
sName = sName& olKontaktItem.FirstName
End If
If olKontaktItem.LastName IsNot Nothing Then
If Len(sName)> 0 Then sName = sName& ""
sName = sName& olKontaktItem.LastName
If olKontaktItem.LastName = "Sehrt" Then Stop
End If
If olKontaktItem.CompanyName IsNot Nothing Then
If Len(sName) = Len(lCnt.ToString& "/"&
olKontakte.Items.Count& ":") Then
sName = sName& " "&
olKontaktItem.CompanyName
End If
End If
sName = sName& ": "& olKontaktItem.MessageClass
Debug.Print(sName)
End If
Catch ex As Exception
Debug.Print(ex.Message.ToString)
Stop
End Try
Next
End Sub

Irgendwann, aber immerhin immer an der gleichen Stelle, schmeisst mit
das Programm eine Meldung in's Debug-Fenster und das war es dann. Bloß
mit der Meldung kann ich irgendwie nichts anfangen:

Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist
in OL2010Sync.exe aufgetreten.

Die Fehlermeldung wird beim Abarbeiten des "Next" produziert. Hat da wer
irgendwelche Ideen?



Gruß Roland

Ähnliche fragen