'------------------------------------------------------ ' Eine Person aus bestehenden Daten in Outlook heraussuchen '------------------------------------------------------ Sub ButtonAusOutlookHeraussuchen_Click Sip (False) WaitCursor (True) ' ErrorLabel(ErrorLabelZweimalSuchenGehtNicht) KontaktPersonA.New1 PimCollectionPersonA.New1("Contacts") PimCollectionPersonA.SortItems("LastName",False) KontaktSucheTabelle.AddCol(cString, "Nachname", 80) KontaktSucheTabelle.AddCol(cString, "Vorname", 70) KontaktSucheTabelle.AddCol(cString, "Geburtstag", 75) KontaktSucheTabelle.AddCol(cString, "Notizen", 230) KontaktSucheTabelle.AddCol(cString, "Telefon", 70) KontaktSucheTabelle.Clear pos = PimCollectionPersonA.FindItem("LastName", Nachname.Text) If pos = -1Then Msgbox("Dieser Kunde ist in Pocket-Outlook noch nicht vorhanden.", " Suchergebnis", cMsgboxOK, cMsgboxHand) WaitCursor (False) Return EndIf KontaktPersonA.Value = PimCollectionPersonA.GetItem(pos) DoWhile (pos < PimCollectionPersonA.Count) AND (KontaktPersonA.LastName = Nachname.Text) If KontaktPersonA.FirstName = Vorname.Text Then KontaktSucheTabelle.AddRow(KontaktPersonA.LastName, KontaktPersonA.FirstName, KontaktPersonA.Birthday, KontaktPersonA.Body, KontaktPersonA.HomeTelephoneNumber) 'die Daten aus der "KontaktSucheTabelle" in die Felder �bernehmen: mPersonA.Anrede.Text = KontaktPersonA.Title ' mPersonA.Geburtstag.Text = KontaktPersonA.Birthday mAdresseTelefon.Stra�e.Text = KontaktPersonA.HomeAddressStreet mAdresseTelefon.PLZ.Text = KontaktPersonA.HomeAddressPostalCode mAdresseTelefon.Ort.Text = KontaktPersonA.HomeAddressCity mAdresseTelefon.Telefon.Text = KontaktPersonA.HomeTelephoneNumber mAdresseTelefon.Handy.Text = KontaktPersonA.MobileTelephoneNumber mAdresseTelefon.EMail.Text = KontaktPersonA.Email1Address 'w�hlt automatisch aus "Die Person ist bekannt." mPersonA.AusweisArt.SelectedIndex = 1 'Focus: Geht dann automatisch mit dem Cursor zum Feld "Geburtsort" mPersonA.Geburtsort.Focus EndIf pos = pos + 1 If pos < PimCollectionPersonA.Count Then KontaktPersonA.Value = PimCollectionPersonA.GetItem(pos) EndIf Loop If KontaktSucheTabelle.RowCount = 0Then Msgbox("Dieser Kunde ist in Pocket-Outlook noch nicht vorhanden.", " Suchergebnis", cMsgboxOK, cMsgboxHand) EndIf WaitCursor (False) ' ErrorLabelZweimalSuchenGehtNicht: ' Msgbox("Mehr als einmal SUCHEN geht NICHT. F�r eine neue Suche mu� das Programm neu gestartet werden.", " Hinweis", cMsgboxOK, cMsgboxHand) End Sub
Nach der zweiten Suche erscheint die angehängte Fehlermeldung, wobei die betreffende "Zeile 170" diese ist:
Das Ganze habe ich jetzt in einen anderen Bereich (beim Anzeigen des Modules mit XXX_Show) geschoben, und schon funktioniert es wieder (zumindest auf dem Desktop)!
Ich melde mich, wenn es auch auf dem PPC klappt.
__________________
JOTHA | Greetz from the Schwabenländle.
Pocket-PC: HTC HD2 (Dual-Boot WindowsMobile 6.51 + Android 2.2 Froyo)
wenn die Suche dann 2 Ergebnisse liefert, weil z.B. zweimal ein "Hans Maier" vorkommt, dann kann es zwei Gründe geben, warum das so ist:
a) Die Person ist irrtümlich 2 x in Outlook eingetragen.
b) Die Person gibt es tatsächlich 2 mal, es handelt sich aber um 2 verschiedene Personen (in der Regel mit verschiedenen Geburtstagen.
Die Frage daraus:
Wie kann ich eine Person durch "anklicken" in der Tabelle auswählen?
Brauche ich dazu die "ListView" von Filippo (mit CheckBoxen in der Tabelle) oder reicht da die "normale Tabelle" und dazu etwas Code?
__________________
JOTHA | Greetz from the Schwabenländle.
Pocket-PC: HTC HD2 (Dual-Boot WindowsMobile 6.51 + Android 2.2 Froyo)
...oder reicht da die "normale Tabelle" und dazu etwas Code?
Letzteres reicht! Im Anhang findest Du hierzu ein erweitertes Beispiel.
Die Tabelle hat eine zusätzliche (erste) Spalte bekommen, welche durch die Breite 0 aber unsichtbar bleibt. Hier merkt sich das Programm die tatsächliche Kontaktposition in der PimCollection.
Die Auswahl wird über das SelectionChanged Event der Tabelle abgefangen. Je nach Auswahl wird dann über die tatsächliche (gemerkte) Position zum Tabelleneintrag der zugehörige Kontakt bestimmt. Anschließend kann man dazu dann wie gewohnt beliebige Daten zu diesem Kontakt anzeigen oder ggf. auch ändern.