Ich erstelle einen neuen Kontakt, man kann die Felder ausfüllen, soweit so gut,
hier soll man aber den Vorgang abbrechen können und der neue Kontakt wieder entfernt werden.
'Neuer Kontakt anlegen
contact.CreateNew
ContactsCollection.AddItem(contact.Value)
'Neuer Kontakt entfernen
ContactsCollection.RemoveItem(???)
Was muss ich bei ??? eintragen, wie kann ich den Wert von contact.value
ermitteln ?
Ich wuerde an deine stelle alles in Variablen stellen und zum schluss, bei der Frage Ja/Nein, den neuer Contakt erstellen oder abbrechen und die Felder mit den Variablen fuellen.
- beim Aufruf der Eingabemaske einen neuen Kontakt erzeugen (Contact.CreateNew)
- dieses neue Kontakt-Objekt aber noch nicht der PimCollection hinzufügen
- das Kontakt-Objekt mit den gewünschten Eingabedaten befüllen (z.B. Contact.FirstName = "Otto")
- wird die Eingabemaske mit 'OK' verlassen, dann das Kontakt-Objekt zur PimCollection hinzufügen (PimCollection.AddItem(Contact.Value))
- wird die Eingabemaske mit 'Abbrechen' verlassen, dann machst Du einfach nichts
Wenn man nun die Eingabemaske erneut aufruft, dann werden durch den Befehl Contact.CreateNew die alten Eingaben vom letzen Aufruf verworfen. In der PimCollection bleiben die Daten eines neu aufgenommen Kontaktes aber natürlich erhalten.
Aaahh , das ist einfacher wie das was ich gerade vor 2 Minuten gebastelt habe:
Contact.LastName = "BPD-dummy"
contact.Update
i = contactscollection.FindItem("LastName","BPD-dummy")
If i > -1 Then
ContactsCollection.RemoveItem(i)
End If
Ich hatte nach Wahl von "abbrechen" einfach "BPD-dummy" als Nachname gespeichert, nach dem gesucht und dann wieder gelöscht.
Werd gleich mal Deinen Tipp ausprobieren, danke Specci48.