Kruemelino
Aktives Mitglied
- Mitglied seit
- 21 Jan 2006
- Beiträge
- 1,314
- Punkte für Reaktionen
- 86
- Punkte
- 48
x-herbert schrieb:DIRTY HACKING!!!
Thema ist immer noch "Suche alle Kontakte"
Vorweg. ich habe drei "Hauptordner" mit jeweils mehreren Kontakte-Ordnern
mein Testscript:
PHP:Sub mytest() Dim outApp As Outlook.Application Dim outNms As Outlook.NameSpace Dim aktKontakt As Object ' aktuelles Element Dim iIndx, jIndx, kIndx As Integer Dim sAdLName As String Dim sFdrMName As String ' Haupt-ordner-Name Dim alleTelNr As Variant ' alle TelNr eines Kontakts Dim outFdr As MAPIFolder Dim outCon As Object Set outApp = New Outlook.Application Set outNms = outApp.GetNamespace("MAPI") For iIndx = 1 To outNms.Folders.Count sFdrMName = outNms.Folders.Item(iIndx).Name For jIndx = 1 To outNms.Folders.Item(iIndx).Folders.Count Set outFdr = outNms.Folders.Item(iIndx).Folders.Item(jIndx) If outFdr.DefaultItemType = olContactItem Then For kIndx = 1 To outNms.Folders.Item(iIndx).Folders.Item(jIndx).Items.Count Set outCon = outNms.Folders.Item(iIndx).Folders.Item(jIndx).Items.Item(kIndx) With outCon ' nur Kontakte werden durchsucht If .Class = olContact Then alleTelNr = Array(.AssistantTelephoneNumber, .BusinessTelephoneNumber, _ .Business2TelephoneNumber, .CallbackTelephoneNumber, .CarTelephoneNumber, _ .CompanyMainTelephoneNumber, .HomeTelephoneNumber, .Home2TelephoneNumber, _ .ISDNNumber, .MobileTelephoneNumber, .OtherTelephoneNumber, _ .PagerNumber, .PrimaryTelephoneNumber, .RadioTelephoneNumber) End If End With Next End If Next Next Set outFdr = outNms.GetDefaultFolder(olFolderContacts) For iIndx = 1 To outFdr.Items.Count Set outCon = outNms.GetDefaultFolder(olFolderContacts).Items(iIndx) With outCon ' nur Kontakte werden durchsucht If .Class = olContact Then alleTelNr = Array(.AssistantTelephoneNumber, .BusinessTelephoneNumber, _ .Business2TelephoneNumber, .CallbackTelephoneNumber, .CarTelephoneNumber, _ .CompanyMainTelephoneNumber, .HomeTelephoneNumber, .Home2TelephoneNumber, _ .ISDNNumber, .MobileTelephoneNumber, .OtherTelephoneNumber, _ .PagerNumber, .PrimaryTelephoneNumber, .RadioTelephoneNumber) End If End With Next End Sub
Im "ersten" Teil finde ich alle meine Kontakte mit entsprechenden Telefonnummern - leider keine Unterordner...
Wenn man das "outNms" ausgeben lässt, sind alle Elemente gut zu "sehen"
Ich habe mal den Code aus "FindeAbsender" übernommen um zu testen, ob hier auch die Unterordner gefunden werden (habe in dem Default-Kontakte ein Unterodner angelegt) - die werden aber bei der "zweiten" Schleife nicht aufgelistet???
[dass die Schleifen auch mit "each" usw. gehen is schon klaro... hier gehts ums Prinzip!]
Würde gern mal die Meinung der Fachmänner hören/lesen...
Gruss x-herbert
Hallo,
das du keine unterordner durchsuchst ist klar. Die Unterordner sind Elemente/Inhalte des hauptordners, wir durchsuchen sie Rekursiv.
Code:
' Unterordner werden rekursiv durchsucht
iOrdner = 1
Do While iOrdner <= Ordner.Folders.Count And Not gefunden
gefunden = FindeAbsender(Absender, KontaktID, Ordner.Folders.Item(iOrdner))
iOrdner = iOrdner + 1
Loop
Ich glaube das ist der weg, der am besten zum ziel führt.
Gruß Gert