'------------------------------------------------------
' Eine Person aus bestehenden Daten in Outlook heraussuchen
'------------------------------------------------------
Sub ButtonAusOutlookHeraussuchen_Click
KontaktPersonA.New1
PimCollectionPersonA.New1("Contacts")
PimCollectionPersonA.SortItems("FirstName",False) 'sorts the contacts using the first name field.
For i = 0 To PimCollectionPersonA.Count - 1
KontaktPersonA.Value = PimCollectionPersonA.GetItem(i)
KontaktListe.Add(KontaktPersonA.FirstName & " " & KontaktPersonA.LastName) 'Add the contact's first and last name to ListBox1.
Next
End Sub
Durchsuchen tut er ja nicht direkt, sondern er füllt im Beispiel der Reihe nach eine Combobox. Ein OutOfMemory Error ist dann abhängig vom vorhandenen Speicherplatz.Kann das auch daran liegen, daß das Programm über 3.800 Kontakte durchsuchen muß und sich dann dabei aufhängt? Ich glaube das eher nicht, oder?
Den "Hollmann" gibt es 100% in meinen Kontakten (das bin ich selber), also müßte der auch gefunden werden.An error occurred on sub mPersonA.ButtonAusOutlookHeraussuchen_Click.
Line number: 140
i = PimCollectionPersonA.FindItem("KontaktPersonA.Lastname","Hollmann")
Error description:
Invalid property.
Continue?
... wenn ich nur wüßte, wie ich nur die ersten 100 Kontakte einlesen kann, dann würde ich es ja mal ausprobieren.Was passiert denn, wenn Du z.B. nur die ersten 100 Kontakte einliest? Klappt es dann, oder hängt sich der Ppc hierbei auch schon auf?
i = PimCollectionPersonA.FindItem("KontaktPersonA.Last name","Hollmann")
i = PimCollectionPersonA.FindItem("KontaktPersonA.LastName","Hollmann")
... In deiner Programmlinie hast Du scheinbar ein Leerzeichen zwischen Last und name name ?
'----------------------------------------------------------------------------
' Funktion: imgOutlookVerknuepfung_OnClick
'----------------------------------------------------------------------------
Sub imgOutlookVerknuepfung_OnClick()
Meldung = msgbox("Daten aus Pocket-Outlook übertragen und aktualisieren ? ------------------------------------- Wenn hier bereits Daten eingetragen sind, werden diese überschrieben !", MBStyle.YesNo + MBStyle.Question, "Pocket-Outlook-Daten")
If Meldung = vbYes Then
Dim outlook
Dim contact
Set outlook = CreateObject("PocketOutlook.Application")
outlook.logon
Set contact = outlook.GetDefaultFolder(10).Items.Find _
("[FileAs] = " & """" & eingabeNachname11.Value & ", " & eingabeVorname11.Value & """")
If contact Is Nothing Then
App.PlaySound("\Windows\Notify.wav")
MsgBox("Achtung: Kein Kontakt mit diesem Vornamen und Nachnamen gefunden oder die Felder sind nicht richtig ausgefüllt ! ------------------------------------------------ Bitte Vorname und/oder Nachname korrigieren.")
App.PlaySound("\Windows\Clipboard.wav")
Else
App.PlaySound("\Windows\Notify.wav")
Contact.Display
App.PlaySound("\Windows\Clipboard.wav")
Set contact = outlook.GetItemFromOid(contact.oid)
eingabeNachname11.Value = contact.LastName
eingabeVorname11.Value = contact.FirstName
auswahlAnredeTitel11.Value = contact.Title
...
...
'Hochzeitstag.Value = contact.anniversary
End If
Else
App.PlaySound("\Windows\Clipboard.wav")'Code für "Nein"
End If
outlook.logoff
End Sub
Ich möchte aber folgendes machen:
Es gibt 2 Felder: Vorname und Nachname. Das sind die Suchkriterien.
Wenn ich dann auf einen Button drücke, soll das Programm alle Kontakte nach diesen 2 Kriterien durchsuchen und mir dann in einer Liste das Gefundene zur Auswahl anbieten.
Wenn ich dann auf die Auswahl klicke, sollen alle Felder (auch die anderen wie z.B. Telefon, Handy, E-Mail, Straße, etc.) automatisch mit Daten gefüllt werden.
Ich hoffe Dir ist damit ein wenig geholfen.
... um so besser ..."Ein wenig geholfen" ist gut! Du hast mir SEHR GEHOLFEN !
Ich habe dein Beispielprogramm nochmals getestet, was ja leider immer nur auf dem PPC geht, und es ist tatsächlich so, daß man damit mehrfache Suchen durchführen kann.... In meinem Beispiel funktioniert die mehrfache Suche ja problemlos. Hast Du vielleicht bei der Übernahme in Dein Programm etwas übersehen?
'------------------------------------------------------
' 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 = -1 Then
Msgbox("Dieser Kunde ist in Pocket-Outlook noch nicht vorhanden.", " Suchergebnis", cMsgboxOK, cMsgboxHand)
WaitCursor (False)
Return
End If
KontaktPersonA.Value = PimCollectionPersonA.GetItem(pos)
Do While (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
End If
pos = pos + 1
If pos < PimCollectionPersonA.Count Then
KontaktPersonA.Value = PimCollectionPersonA.GetItem(pos)
End If
Loop
If KontaktSucheTabelle.RowCount = 0 Then
Msgbox("Dieser Kunde ist in Pocket-Outlook noch nicht vorhanden.", " Suchergebnis", cMsgboxOK, cMsgboxHand)
End If
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
KontaktSucheTabelle.AddCol(cString, "Nachname", 80)
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)
... ich habe (glaube ich) den Fehler gefunden.
Ich melde mich, wenn es auch auf dem PPC klappt.
Gern geschehen...Danke nochmals für den Code, specci48!
Letzteres reicht! Im Anhang findest Du hierzu ein erweitertes Beispiel....oder reicht da die "normale Tabelle" und dazu etwas Code?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?