Kann Outlook mit zu vielen Kontakten nicht umgehen?
Hi Jungz (und mädelz)!
stehe vor einem unverständlichen Problem =)
Hab ein programm in VBA geschrieben, das super funktioniert, wenn ich nur so ca 10-40 Kontakte habe.
Sobald ich aber weitere Kontakte in den Kontaktordner stecke, sieht Outlook schwarz.
Erstmal: Was macht mein Programm? Es gleicht die Emailadresse aus einer Textdatei mit allen Kontakten ab und findet es eine Übereinstimmung, verändert es einen Wert des Kontakts.
Was macht das Programm ab 100 Kontakten nicht mehr?
Ab dem 3. oder 4. Abgleich (die alle noch korrekt funktionieren) findet das Programm keine der emailadressen mehr, obwohl diese in den Kontakten zu finden sind.
Ich hab leider keine Ahnung, was das Problem ist. Zu wenig RAM? Kann ja wohl nicht sein. Variablen begrenzt? Kann ich mir auch nicht vorstellen.
Um Hilfe wäre ich sehr dankbar!
Der ursprüngliche Thread mit Fragestellung von Programmcode
Abgleich von Outlookkontaktfeldern mit einer externen Datei
Hier noch der Programmcode:
Private Sub CommandButton1_Click()
Dim Kontakt As ContactItem
Dim eMailAdresse As String
Dim i As Integer
On Error Resume Next
Open "U:\Outlook\Abmeldungen.txt" For Input As #1
For i = 0 To 30
Line Input #1, eMailAdresse
MsgBox eMailAdresse + " wird gesucht!"
For Each Kontakt In Session.GetDefaultFolder(olFolderContacts).Items
If Kontakt.Email1Address = eMailAdresse Then
MsgBox Kontakt.LastNameAndFirstName + " mit der Emailadresse " + eMailAdresse + " gefunden" + vbCr + "Markierung entfernt!"
Kontakt.UserProperties("News").Value = False
Kontakt.Save
End If
Next
Next
Close #1
MsgBox "Aufgabe erledigt"
Unload Me
End Sub
stehe vor einem unverständlichen Problem =)
Hab ein programm in VBA geschrieben, das super funktioniert, wenn ich nur so ca 10-40 Kontakte habe.
Sobald ich aber weitere Kontakte in den Kontaktordner stecke, sieht Outlook schwarz.
Erstmal: Was macht mein Programm? Es gleicht die Emailadresse aus einer Textdatei mit allen Kontakten ab und findet es eine Übereinstimmung, verändert es einen Wert des Kontakts.
Was macht das Programm ab 100 Kontakten nicht mehr?
Ab dem 3. oder 4. Abgleich (die alle noch korrekt funktionieren) findet das Programm keine der emailadressen mehr, obwohl diese in den Kontakten zu finden sind.
Ich hab leider keine Ahnung, was das Problem ist. Zu wenig RAM? Kann ja wohl nicht sein. Variablen begrenzt? Kann ich mir auch nicht vorstellen.
Um Hilfe wäre ich sehr dankbar!
Der ursprüngliche Thread mit Fragestellung von Programmcode
Abgleich von Outlookkontaktfeldern mit einer externen Datei
Hier noch der Programmcode:
Private Sub CommandButton1_Click()
Dim Kontakt As ContactItem
Dim eMailAdresse As String
Dim i As Integer
On Error Resume Next
Open "U:\Outlook\Abmeldungen.txt" For Input As #1
For i = 0 To 30
Line Input #1, eMailAdresse
MsgBox eMailAdresse + " wird gesucht!"
For Each Kontakt In Session.GetDefaultFolder(olFolderContacts).Items
If Kontakt.Email1Address = eMailAdresse Then
MsgBox Kontakt.LastNameAndFirstName + " mit der Emailadresse " + eMailAdresse + " gefunden" + vbCr + "Markierung entfernt!"
Kontakt.UserProperties("News").Value = False
Kontakt.Save
End If
Next
Next
Close #1
MsgBox "Aufgabe erledigt"
Unload Me
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 106875
Url: https://administrator.de/contentid/106875
Ausgedruckt am: 17.11.2024 um 07:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo 13martin37,
bin kein VBA Specialist, aber mit for each rennst du ja durch jedes Object innerhalb eines "Arrays". Kann es sein, dass er dir an der stelle immer resigniert?
würde an deiner stelle auch nicht stupide jeden Kontakt einmal öffnen um mir die Email anzusehen....
folder = namespace.GetDefaultFolder(olFolderContacts)
filter = "[Email1Address] LIKE 'max@mustermann.de'"
searchfolder = folder.Items.Restrict(filter)
anzahl = searchfolder.Count
if anzahl > 0 then
for i = 1 to anzahl do
folderobject := searchfolder.Item(i)
folderobject.ItemProperties.Item("News").value = False
folderobject.save
next
end if
vielleicht gehts so besser....
PS.: Outlook kann mit einigen Kontakten mehr als 100 umgehen. wir verwenden einen öffentlichen Ordner dafür mit mittlerweile 200.000 ContactItems. Jedoch wird die ganze Sache dann sehr langsam.
bin kein VBA Specialist, aber mit for each rennst du ja durch jedes Object innerhalb eines "Arrays". Kann es sein, dass er dir an der stelle immer resigniert?
würde an deiner stelle auch nicht stupide jeden Kontakt einmal öffnen um mir die Email anzusehen....
folder = namespace.GetDefaultFolder(olFolderContacts)
filter = "[Email1Address] LIKE 'max@mustermann.de'"
searchfolder = folder.Items.Restrict(filter)
anzahl = searchfolder.Count
if anzahl > 0 then
for i = 1 to anzahl do
folderobject := searchfolder.Item(i)
folderobject.ItemProperties.Item("News").value = False
folderobject.save
next
end if
vielleicht gehts so besser....
PS.: Outlook kann mit einigen Kontakten mehr als 100 umgehen. wir verwenden einen öffentlichen Ordner dafür mit mittlerweile 200.000 ContactItems. Jedoch wird die ganze Sache dann sehr langsam.