Outlook Verteilerliste Problem mit befüllen
-
tagchen,...
ich habe ein mittelschweres Problem und hoffe ihr könnt mir helfen.
Folgendes:
Ich habe nen win-Anwendung geschrieben, welche mir aus einer SQL Datenbank die Mitarbeiterdaten zieht und im Outlook (in einem öffentlichen Ordner) als Visitenkarten darstellt. Soweit funzt das auch.
Nun wollte ich nach entsprechenden Abhängigkeiten der Daten, Verteilerlisten erstellen. Die Verteilerlisten werden auch erstellt, nur das automatische Befüllen funktioniert NICHT! d.h wenn ich eine while oder for schleife bastel die das befüllen übernehmen soll wird das nicht ausgeführt. wenn ich aber den Befehl zum befüllen separat schreibe funzt es.
Quelltext:Public Sub get_Verteiler() For l = 0 To arrRegionalleiter.Length - 1 set_dist_list(arrRegionalleiter(l), arrRegionalleiterName(l)) Next l End Sub Public Sub set_dist_list(ByVal region As Integer, ByVal regname As String) Dim appOutlookp As Outlook.Application Dim oNS As Outlook.NameSpace Dim objOrdnerer As Object appOutlookp = New Outlook.Application Dim objItem As Outlook.DistListItem Dim objMail As MailItem Dim objRcpnts As Recipients Dim objRcpnt1 As Recipient oNS = appOutlookp.GetNamespace("MAPI") objOrdnerer = oNS.Folders("Öffentliche Ordner").Folders("Alle Öffentlichen Ordner").Folders("Mediaberater") oNS.Logon() objMail = appOutlook.CreateItem(Outlook.OlItemType.olMailItem) objRcpnts = objMail.Recipients 'Dim myCommandVerteiler As New SqlCommand("SELECT * FROM mediaberater WHERE mb_regionalleiter_aktuell='" & region & "'", myConnection) 'myConnection.Open() 'myReaderVerteiler = myCommandVerteiler.ExecuteReader 'While myReaderVerteiler.Read ' Dim strTest As String ' strTest = "<" + myReaderVerteiler("mb_vorname") + " " + myReaderVerteiler("mb_name") + "> " + myReaderVerteiler("mb_email_verlag") + "" ' objRcpnt1 = objRcpnts.Add(strTest) 'End While ' WENN ICH DEN VERTEILER MIT DER WHILE SCHLEIFE FÜLLEN MÖCHTE, LEGT DER MIR KOMISCHERWEISE NUR DIE LETZTE VERTEILERLISTE AN! ' DIE FOR SCHLEIFE WIRD ZWAR 3 MAL DURCHLAUFEN, ABER IN DER VERTEILERLISTE STEHEN NUR 2 EMPFÄNGER DRIN!!! For n = 0 To 2 'MsgBox("N ist: " + CStr(n)) o = o + 1 'MsgBox("o ist: " + CStr(o)) objRcpnt1 = objRcpnts.Add("<TESTER " + CStr(o) + "> test1@tzest.de") objRcpnt1 = objRcpnts.Add("<TESTER> test2@test.de") Next n objItem = objOrdnerer.Items.Add(Outlook.OlItemType.olDistributionListItem) objItem.DLName = "_VG_ " + regname If objRcpnts.ResolveAll Then objItem.AddMembers(objRcpnts) objItem.Save() ' objItem.Display() End If oNS.Logoff() ' Log off. appOutlookp = Nothing oNS = Nothing objOrdnerer = Nothing myConnection.Close() objRcpnts = Nothing objRcpnt1 = Nothing objMail = Nothing objItem = Nothing End Sub
bin mit meinem Latein am Ende!
hoffe ihr könnt helfen und Danke schonmal!
THX a lot
Bart
-
Schon mal nen Debuger benutzt? Das hilft manchmal echt. Außerdem würde ich etwas am Programmierstil arbeiten. Zählervariablen die l bzw o heißen, sind verboten.
-
ich weiß das ich was an meinem Stil ändern muss.
so zum problem. habs jetzt gelöst:zu den Fehlern:
Die For schleife hat ja richtig gefunzt, aber es wurden nur 2 Einträge in die Verteilerliste geschrieben. Grund dafür war, das es immer die gleichen Emailadressen waren.
so ist es richtig:For n = 0 To 2 objRcpnt1 = objRcpnts.Add("<TESTER " + CStr(n) + "> test"+Cstr(n)+"@tzest.de") objRcpnt1 = objRcpnts.Add("<TESTER> test2@test.de") Next n
Das nächste war, dass mir die Verteilerlisten nicht gefüllt wurden.
das Problem lag an der IF - Schleife mit objRcpnts.ResolveAlldanke trotzdem
bart