Meinews.de  


Zurück   Meinews.de > Forum > Newsgroups microsoft.public.de.* 4 Forum > Newsgroups microsoft.public.de.fox
Registrieren FAQ Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Newsgroups microsoft.public.de.fox Forum microsoft.public.de.fox

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11-02-2009, 12:56 PM
Silenus paparias
 
Beiträge: n/a
Standard Outlook 2007 contacts Importieren ?

Hallo

Gibts eine moeglichekeit daten aus der Contacts-Flies (*.vcf) von
Outlook2007 , im meine Anwendung zu importieren ?

Wenn ja, wo kann ich mehr info erhalten?

Danke.
Mit Zitat antworten
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Meinews.de
Standard Sponsored Links

  #2  
Alt 11-02-2009, 04:04 PM
Jürgen Wondzinski
 
Beiträge: n/a
Standard Re: Outlook 2007 contacts Importieren ?

Hallo Silenus

ne VCARD (*.VCF) ist doch einfach nur ne Textdatei, die kannst du doch
problemlos einlesen und zerlegen?

Rein ausm Bauch raus ungefähr so:
cContent = FileToStr(Getfile("VCF"))
cTelefon = STREXTRACT(cContent, "TEL;WORK;VOICE:",CHR(13))


--

wOOdy
Visual FoxPro Technologieberater
Microsoft "Most Valuable Professional" 1996 bis 2009



"*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
...·`.Visual FoxPro: It's magic !
(¸.·``··*

Mit Zitat antworten
  #3  
Alt 11-02-2009, 06:52 PM
Olaf Doschke
 
Beiträge: n/a
Standard Re: Outlook 2007 contacts Importieren ?

Mal abgesehen von StrExtract, Outlook-Kontakte sind auch nur Outlook-Items
wie Mails und lassen sich per Automation auslesen:

#DEFINE olFolderContacts 10
oOutlook = CREATEOBJECT("Outlook.Application")
oMapiNamespace = o.GetNamespace('MAPI')
oFolderContacts = oMapiNamespace.GetDefaultFolder(olFolderContacts)
FOR EACH oItem IN oFolder.Items
? oItem.FirstName
? oItem.LastName
? oItem.BusinessTelephoneNumber
? oItem.MailingAddress
? oItem.BusinessHomePage
? oItem.Email1Address
? oItem.Email2Address
....
ENDFOR

Über den Objectbrowser kommst Du an alle Office/Outlook Konstanten ran,
insbesondere alle olFolder-Typen.
Ein Breakpoint in der For-Schleife und Du kannst Dir per Intellisense alle
ContactItem-Properties anscheuen.

Tschüß, Olaf.


Mit Zitat antworten
  #4  
Alt 11-03-2009, 07:18 AM
Silenus paparias
 
Beiträge: n/a
Standard Re: Outlook 2007 contacts Importieren ?

Hallo.
Danke erstmal.

Dies soll ein einmalige procedure werden. Ich will auch nicht in der
Anwendung/formen rumbasteln.
Folgendes ueberlegt:
Der Anwender exportiert die Kontakte in eine Excel-File, sortiert sie,
loescht die doppelte Eintraege etc.
Jetzt komme ich... Nehme und fuege hinzu diese daten in meine DBF
(mit VFP commands,) das wars!

Fuer jede Anregung danke im voraus.

Gruss.

Mit Zitat antworten
  #5  
Alt 11-03-2009, 07:40 AM
Jürgen Wondzinski
 
Beiträge: n/a
Standard Re: Outlook 2007 contacts Importieren ?

Hallo Silenus,

Warum sollte der Anwender die Kontakte erst mal nach Excel exportieren?
Kontakte sind in einem Kontaktmanager (wie Outlook) am besten zu bearbeiten,
also soll er doch da seine Kontakte aussortieren.

Und du kannst sie mit der absolut simplen Routine, die dir Olaf gezeigt hat,
direkt aus Outlook einlesen. Der Umweg über VCARD oder Excel ist totaler
Schwachfug, sorry. Und macht dir auf jeden Fall deutlich mehr
Programmier-Aufwand.

>> mit VFP commands


Alles, was du in VFP machst, ist "mit VFP commands"; egal ob du nun
prozedural eine VCard oder Excel einliest oder objektorientiert auf Outlook
zugreifst. Man muss sich nur mal damit beschäftigen WOLLEN.


--

wOOdy
Visual FoxPro Technologieberater
Microsoft "Most Valuable Professional" 1996 bis 2009



"*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
...·`.Visual FoxPro: It's magic !
(¸.·``··*

Mit Zitat antworten
  #6  
Alt 11-03-2009, 10:51 AM
Silenus paparias
 
Beiträge: n/a
Standard Re: Outlook 2007 contacts Importieren ?

Hallo Juergen.

Wie schon gesagt ich will nicht in der anwendung "rumbatseln".

Die Anwendung laeuft schon und hat ueber 300 Kontakte drin

Die Outlook Kontakt Daten sind schon von mir in eine temp-DBF
gespeichert worden.

Eine append from temp.dbf hat nur leerzeile hinzugefuegt in meine DBF.

Da die Anzahl der Felder und die Feldername verschieden sind in der
DBFs , wie bestimme ich wo was rein soll?

Gruss
Mit Zitat antworten
  #7  
Alt 11-03-2009, 11:55 AM
Olaf Doschke
 
Beiträge: n/a
Standard Re: Outlook 2007 contacts Importieren ?

> Eine append from temp.dbf hat nur leerzeile hinzugefuegt in meine DBF.
>
> Da die Anzahl der Felder und die Feldername verschieden sind in der
> DBFs , wie bestimme ich wo was rein soll?


Wenn was die Quelle des Appends ist?

Grundsätzlich zum Append:
Du hast eine Ziel-DBF, die Du selektierst. Dann machst Du den APPEND der
Quell-DBF. Die Feldnamen müssen in beiden DBFs übereinstimmen, die
Feldreihenfolge und selbst der Feldtyp sind zweitrangig, sofern die Typen
zumindest kompatibel sind. Man kann z.B. ein C(100) Feld in ein C(50) Feld
appenden, muß dann evtl. eben nur mit abgeschnittenen Werten rechnen.

Wenn Du also eine Contacts.dbf in Deiner Datenbank hast, weißt Du, wie die
temp.dbf, aus der Du weitere Kontakte importieren willst aussehen muß. Das
Mapping von Feldnamen kann Dir keiner Abnehmen, wenn die Strukturen
unterschiedlich sind, dann mußt Du eben noch einen import Cursor erstellen
z.B. mittels create cursor inmport (feldliste), insert into import select
feld1 as richtigername1, feld2 as richtigername2, ... from temp.dbf, und
anschließend ein APPEND FROM DBF("import"). Was Dir ein Append aber nie
abnimmt ist, ein Merge/Abgleich mit schon vorhandenen Kontakten. Dazu
brauchst Du schon eine Programmlogik aus Updates und Inserts der einzelnen
Kontakte, oder Du fügst blind alle Kontakte an und tilgst dann im Anschluß
erst Doppler.

An der Stelle in meinem Beispielcode, wo ich beispielhaft einige
ContactItem-Eigenschaften ausgebe, kannst Du aber genauso die besagte
UPDATE/INSERT Logik vorsehen, um die Kontakte zu synchronisieren/zu
ergänzen, z.B.

Update Contacts SET
Vorname = oItem.Firstname, ;
Nachname = oItem.Lastname, ;
..... ;
WHERE Contacts.EntryID = oItem.EntryID && siehe Anmerkung unten

IF _tally=0 && Kein Update, also neuer Kontakt
INSERT INTO Contacts (...felder...) VALUES (...oItem....,oItem....)

* wenn die Felder geschickterweise so heißen wie die
Outlook-ContactItem-Properties, dann z.B. einfach
INSERT INTO Contacts FROM NAME oItem
Endif

Je nach den Feldnamen in Deiner Contacts.DBF ändern sich Update und Insert
logischerweise.

Daneben müßte man dann alle Contacts durchgehen und evtl. die löschen, die
sich in Outlook nicht mehr auffinden lassen, wenn Outlook das führende
System der Kontaktdaten sein soll, oder man pumpt dann eben Kontakte nach
Outlook, die dort fehlen.

Was die EntryID angeht ist diese zumindest innerhalb Outlook ein eindeutiger
Schlüssel für einen Kontakt, den man am besten auch in seine Contacts.DBF
übernimmt, um eineindeutig Kontakte zwischen Outlook und seinen eigenen
Daten abgleichen zu können. Wenn das nicht gegeben ist und Du die
Applikationstabelle der Kontakte nicht selbst ändern kannst, mußt Du im
Zweifelsfall eben mehrere Kontakteigenschaften heranziehen, wie Vorname,
Nachnahme, Mailadresse und Geburtsdatum, die insgesamt einen Kontakt
eindeutig reidentifizieren. Das Blöde an solchen Ersatzschlüsseln ist, daß
gerade eine Korrektur an den darin beteiligten Feldern den Kontakt dann aber
unauffindbar macht. Daher die EntryID.

Übrigens haben sich in meinen Beispielcode zwei Fehler eingeschlichen:
a) an der Stelle oMapiNamespace = o.GetNamespace('MAPI') muß es natürlich
heißen
oMapiNamespace = oOutlook.GetNamespace('MAPI')

b) die Schleife geht über alle Items in oFolderContacts, nicht über oFolder.

insgesamt also:
#DEFINE olFolderContacts 10
Use Contacts.DBF IN 0 && anpassen an die Zieltabelle.

oOutlook = CREATEOBJECT("Outlook.Application")
oMapiNamespace = oOutlook.GetNamespace('MAPI')
oFolderContacts = oMapiNamespace.GetDefaultFolder(olFolderContacts)
FOR EACH oItem IN oFolderContacts.Items
* ...Update/Insert Logik pro Kontakt, ein Outlook-Kontakt ist gerade in
oItem, Contacts o.ä. ist der Alias der Zieltabelle.
ENDFOR

Tschüß, Olaf.


Mit Zitat antworten
  #8  
Alt 11-03-2009, 12:10 PM
Bernhard Sander
 
Beiträge: n/a
Standard Re: Outlook 2007 contacts Importieren ?

Hallo Silenus,

> Eine append from temp.dbf hat nur leerzeile hinzugefuegt in meine DBF.
>
> Da die Anzahl der Felder und die Feldername verschieden sind in der
> DBFs , wie bestimme ich wo was rein soll?

Beim APPEND FROM tabelle.dbf kann man höchstens die Feldauswahl einschränken
aber keine anderweitigen Feldzuordnungen vorgeben. Die Reihenfolge der Felder
ist aber grundsätzlich egal.

Auswege:
SELECT feldeins AS einfeld, felddrei AS zweifeld, feldsiebzehn AS dreifeld ...
FROM quelltabelle INTO TABLE zwischentabelle WHERE ...
SELECT zieltabelle
APPEND FROM zwischentabelle

oder:
Schleife über die Quelltabelle und dann die Zeilen einzeln übertragen.

oder:
COPY TO zwischendatei.csv FIELDS in der benötigten Reihenfolge TYPE DELIMITED
SELECT zieltabelle
APPEND FROM zwischendatei.csv TYPE DELIMITED
hier spielt die Reihenfolge der Felder die Hauptrolle. Feldnamen sind in der
Datei keine drin.

Gruß
Bernhard Sander
Mit Zitat antworten
  #9  
Alt 11-03-2009, 03:16 PM
Olaf Doschke
 
Beiträge: n/a
Standard Re: Outlook 2007 contacts Importieren ?

> oder:
> COPY TO zwischendatei.csv FIELDS in der benötigten Reihenfolge TYPE
> DELIMITED
> SELECT zieltabelle
> APPEND FROM zwischendatei.csv TYPE DELIMITED
> hier spielt die Reihenfolge der Felder die Hauptrolle. Feldnamen sind in
> der Datei keine drin.


Was das angeht könnte man auch ein SELECT INTO ARRAY machen und APPEND FROM
ARRAY nutzen.

Tschüß, Olaf.


Mit Zitat antworten
  #10  
Alt 11-03-2009, 05:19 PM
Jürgen Wondzinski
 
Beiträge: n/a
Standard Re: Outlook 2007 contacts Importieren ?

Hallo Olaf,

>> Was die EntryID angeht ist diese zumindest innerhalb Outlook ein
>> eindeutiger

Schlüssel für einen Kontakt, den man am besten auch in seine Contacts.DBF
übernimmt <<


Oobacht! Die EntryId ist bei Outlook / Exchange immer nur Folderbezogen
eindeutig, d.h: wenn du ein Item in nen anderen Folder verschiebst, ändert
sich dessen EntryId; der jeweilige Folder generiert für deinen Context die
EntryId.

Wenn du also Kontakte oder Termine synchron halten willst, musst du selber
ne eindeutige ID in eines der CustomFields speichern, damit du dein Item
wiederfindest.

--

wOOdy
Visual FoxPro Technologieberater
Microsoft "Most Valuable Professional" 1996 bis 2009



"*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
...·`.Visual FoxPro: It's magic !
(¸.·``··*




Mit Zitat antworten
 
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen
Es ist dir nicht erlaubt, auf Beiträge zu antworten
Es ist dir nicht erlaubt, Anhänge anzufügen
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten

vB Code ist An
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Kontakte importieren nach Outlook 2007 Dieter Newsgroup microsoft.public.de.outlook 4 06-21-2009 08:52 AM
Accounts + Contacts von CRM 4.0 exportieren und in ein anderen CRM4.0 importieren pstreimelweger@gmail.com Newsgroups microsoft.public.de.crm 6 02-27-2009 10:45 AM
Outlook 2007 PST Datei nach Festplatten Crash importieren michael Newsgroups microsoft.public.de.outlook.teamfolders 1 02-05-2009 04:27 PM
project 2003 task einem outlook contacts im appointment zuweisen JCardenas Newsgroups microsoft.public.de.project 1 09-30-2008 06:58 PM
MS Office 2007 - Outlook - Datei -> Importieren/Exportieren... Zawisza Newsgroup de.comp.office-pakete.ms-office 0 04-02-2008 08:57 PM


Alle Zeitangaben in WEZ. Es ist jetzt 01:20 PM Uhr.





Powered by: vBulletin Version 3.6.7 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Forum SEO by Zoints