{"id":55000113,"date":"2003-08-01T00:00:00","date_gmt":"2020-05-06T15:17:28","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=113"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Adressverwaltung_mit_Outlookschnittstelle","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/","title":{"rendered":"Adressverwaltung mit Outlookschnittstelle"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/1ac616f095c24c55ace9b4787e909248\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Die Verwaltung von Adressen ist eigentlich eine triviale Angelegenheit. Entweder man arbeitet mit Outlook und speichert dort seine Adressen oder man gibt sich gar nicht erst mit dem Computer ab und verwendet das gute alte Adressb&uuml;chlein. Das st&uuml;rzt wenigstens nie ab und verliert niemals Daten &#8211; schon gar nicht auf unerkl&auml;rliche Weise. Leider taugt das Adressb&uuml;chlein genauso wenig als Datenherkunft f&uuml;r einen Serienbrief mit Word wie Outlook zur Verwaltung von Firmenkontakten mit mehreren Ansprechpartnern. F&uuml;r fortgeschrittene Anforderungen muss also doch wieder eine Datenbankanwendung herhalten, wie der vorliegende Beitrag zeigt.<\/b><\/p>\n<p>Adressverwaltungen gibt es wie Sand am Meer. Auch im Grundwerk zu diesem Magazin, dem Praxishandbuch Access, finden Sie eine. Es gibt aber immer Anforderungen, die Anwendungen mit Standardfunktionen nicht erf&uuml;llen k&ouml;nnen, sodass man sich selbst an die Entwicklung einer Anwendung mit den gew&uuml;nschten Funktionen machen muss.<\/p>\n<p>Aus dem Manko von Outlook, keine relational verkn&uuml;pften Daten wie Unternehmen und Ansprechpartner verwalten zu k&ouml;nnen, resultieren zwei Anforderungen:<\/p>\n<li>Die Adressverwaltung soll Unternehmen und mehrere Ansprechpartner zu jedem Unternehmen speichern k&ouml;nnen.<\/li>\n<li>Die Adressverwaltung soll die bestehenden Daten aus Outlook importieren und die dort vorhandenen Unternehmensdaten in das relationale Datenmodell einordnen k&ouml;nnen.<\/li>\n<h3>Hinweis<\/h3>\n<p>Die Musterl&ouml;sung erf&uuml;llt die Anforderungen und stellt einige weitere Funktionen zur Verf&uuml;gung. Da eine Beschreibung der Erstellung der kompletten Datenbankanwendung den Rahmen des vorliegenden Beitrags sprengen w&uuml;rde, erfahren Sie hier, welche Funktionen die Anwendung bietet und wie einige nicht triviale Bestandteile funktionieren bzw. programmiert werden. <\/p>\n<h2>Unternehmen und Ansprechpartner<\/h2>\n<p>Die Verwaltung von Adressen ist solange einfach, wie eine Adresse einem Firmennamen und\/oder einer Person besteht. Projekte mit anderen Unternehmen k&ouml;nnen allerdings leicht den Kontakt zu mehr als einem Ansprechpartner in einer Firma erfordern &#8211; und sp&auml;testens dann m&uuml;ssen die Unternehmen einzeln verwaltet und den Personen zugeordnet werden k&ouml;nnen.<\/p>\n<p>Die vorliegende Musterl&ouml;sung n&auml;hert sich dieser Problematik von zwei Seiten: Unternehmen und Personen werden in zwei separaten Tabellen gespeichert, die eine einfache Zuordnung dieser beiden Entit&auml;ten erm&ouml;glichen. Dazu enth&auml;lt die Tabelle der Personen ein Feld, mit dem das entsprechende Unternehmen der Person zugeordnet werden kann.<\/p>\n<p>Dadurch k&ouml;nnen sowohl die einzelnen Unternehmen mit den jeweiligen Mitarbeitern als auch die einzelnen Personen mit dem zugeordneten Unternehmen angezeigt werden. Eine komfortable Suchfunktion liefert also beides zur&uuml;ck: sowohl Unternehmen als auch Personen.<\/p>\n<p><IMG height=\"344\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic001.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Startbildschirm der Adressverwaltung<\/span><\/b><\/p>\n<p><IMG height=\"395\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic002.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Auswahl eines Kontakte-Ordners<\/span><\/b><\/p>\n<h2>Import aus Outlook<\/h2>\n<p>Outlook bietet zwar die M&ouml;glichkeit, die private, gesch&auml;ftliche und noch eine weitere Adresse f&uuml;r jeden Kontakt einzugeben. Alle Daten werden allerdings in einer Tabelle gespeichert, was f&uuml;r Bef&uuml;rworter des relationalen Datenmodells schlichtweg nicht nachvollziehbar ist.<\/p>\n<p>Wenn Sie in Outlook mehrere Kontakte eingeben, die dem gleichen Unternehmen angeh&ouml;ren, m&uuml;ssen Sie die Adressdaten des Unternehmens f&uuml;r jeden Mitarbeiter neu eingeben.<\/p>\n<p>Die vorliegende Musterl&ouml;sung bietet dennoch die M&ouml;glichkeit, die Kontaktdaten aus Outlook zu importieren und die Daten dabei dem relationalen Datenmodell der Musterl&ouml;sung anzupassen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Der Import von Outlook wird mit Outlook ab der Version 2000 unterst&uuml;tzt. <\/p>\n<p>Die im vorliegenden Beitrag vorgestellte Musterl&ouml;sung dient der Verwaltung von Kontakten zu Unternehmen und deren Mitarbeitern sowie zu Einzelpersonen.<\/p>\n<p>Sie bietet den Vorteil, dass gleichzeitig nach Unternehmen und Personen gesucht werden kann.<\/p>\n<p>Die Benutzeroberfl&auml;che stellt sich nach dem Start der Anwendung nicht gerade besonders aufregend dar: Neben dem Startbildschirm finden Sie lediglich eine neue Men&uuml;leiste vor (siehe Bild 1). &uuml;ber diese Men&uuml;leiste k&ouml;nnen Sie alle Funktionen der Anwendung aufrufen oder Formulare &ouml;ffnen, die die entsprechenden Funktionen bereitstellen.<\/p>\n<h2>Import von Outlook-Kontakten<\/h2>\n<p>Den Import starten Sie &uuml;ber den entsprechenden Eintrag des Men&uuml;s Datei. Im nun erscheinenden Dialog Kontakte von Outlook importieren gibt es drei Schritte.<\/p>\n<p>Im ersten Schritt klicken Sie auf die Schaltfl&auml;che Ausw&auml;hlen, um den Dialog zur Auswahl des gew&uuml;nschten Kontakte-Ordners aus Outlook zu &ouml;ffnen (siehe Bild 2).<\/p>\n<p>Nachdem Sie den Ordner ausgew&auml;hlt haben, beenden Sie den Dialog mit einem Mausklick auf die Schaltfl&auml;che OK.<\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Diese Vorgehensweise er&ouml;ffnet Ihnen die M&ouml;glichkeit, nacheinander mehrere Ordner einzulesen. M&ouml;glicherweise haben Sie ja Ihre Kontakte in mehreren Unterordnern untergebracht oder Sie m&ouml;chten die Kontakte von verschiedenen .pst-Dateien in der Datenbank zusammenfas-sen. <\/p>\n<p><IMG height=\"332\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic003.png\" width=\"420\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Festlegen von Import-Funktionen<\/span><\/b><\/p>\n<p><IMG height=\"388\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic004.png\" width=\"420\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Aktiver Importvorgang<\/span><\/b><\/p>\n<p>Im zweiten Schritt w&auml;hlen Sie eine der drei vorhandenen Optionen f&uuml;r die Verarbeitung von Duplikaten aus (siehe Bild 3). Die hier genannten M&ouml;glichkeiten beziehen sich auf reine Namens-Duplikate &#8211; d. h. dass Vor- und Nachname des zu importierenden Datensatzes mit mindestens einem vorhandenen Datensatz &uuml;bereinstimmen.<\/p>\n<p>Nach der Auswahl initiieren Sie mit einem Mausklick auf die Schaltfl&auml;che Importieren den Importvorgang, dessen Verlauf grafisch und schriftlich verfolgt werden kann (siehe Bild 4).<\/p>\n<h3>Hinweis<\/h3>\n<p>Sobald einer der zu importierenden Kontakte eine E-Mail-Adresse beinhaltet, meldet sich Outlook und macht den Benutzer darauf aufmerksam, dass ein Programm auf die gespeicherten E-Mail-Adressen zugreift. Durch diese Sicherheitsma&szlig;nahme kann die Aktivit&auml;t von Viren unterbunden werden, die sich der E-Mail-Adressen von Outlook bedienen, um sich weiter zu verbreiten. Sie sollten sich daher mit dieser Meldung abfinden und keinesfalls die entsprechende Option in Outlook abschalten. <\/p>\n<h2>Bearbeiten von Stammdaten<\/h2>\n<p>Die Adressverwaltung enth&auml;lt M&ouml;glichkeiten zur Verwaltung aller vorkommenden Stammdaten. Dazu geh&ouml;ren neben den Adressen der Einzelpersonen und der Unternehmen auch die meist per Kombinationsfeld ausw&auml;hlbaren Informationen wie Branchen, Anreden, Positionen und Kategorien.<\/p>\n<p>Die Formulare zur Bearbeitung der Stammdaten &ouml;ffnen Sie &uuml;ber die entsprechenden Eintr&auml;ge des Men&uuml;s Stammdaten (siehe Bild 5).<\/p>\n<h3>Stammdaten von Personen<\/h3>\n<p>Die Eingabe, die Bearbeitung und das L&ouml;schen von Personen erfolgt im Formular frmAdressen. Sie &ouml;ffnen es &uuml;ber den Men&uuml;eintrag Stammdaten ( Personen.<\/p>\n<p>Hier k&ouml;nnen Sie die Daten einer Person eintragen sowie das Unternehmen ausw&auml;hlen, bei dem die Person besch&auml;ftigt ist. Au&szlig;erdem finden Sie hier Gelegenheit, gesch&auml;ftsspezifische Daten wie Abteilung, Position sowie die Telefonnummern und E-Mail-Adressen einzugeben (siehe Bild 6).<\/p>\n<p><IMG height=\"344\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  &ouml;ffnen eines Formulars zur Bearbeitung von Stammdaten<\/span><\/b><\/p>\n<p><IMG height=\"345\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Verwaltung der Stammdaten einer Person<\/span><\/b><\/p>\n<p><IMG height=\"367\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic007.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Stammdaten eines Unternehmens<\/span><\/b><\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Falls Sie das Unternehmen der aktuell zu bearbeitenden Person noch nicht in den Stammdaten angelegt haben, k&ouml;nnen Sie das vor der Auswahl des Unternehmens der Person erledigen. Dazu verwenden Sie den Eintrag Stammdaten\/Unternehmen der Men&uuml;leiste. <\/p>\n<h3>Hinweis<\/h3>\n<p>Neben den &uuml;blichen Schaltfl&auml;chen zum Hinzuf&uuml;gen, L&ouml;schen, Speichern und Abbrechen finden Sie hier auch eine Schaltfl&auml;che mit der Bezeichnung Datenblatt. Hinter dieser Schaltfl&auml;che befindet sich noch keine Funktion. Wenn Sie m&ouml;chten, k&ouml;nnen Sie ein Ihren W&uuml;nschen entsprechendes Datenblatt in Form eines Berichtes erstellen und es &uuml;ber diese Schaltfl&auml;che anzeigen lassen. <\/p>\n<h3>Stammdaten von Unternehmen<\/h3>\n<p>Das Formular zur Anzeige der Stammdaten eines Unternehmens enth&auml;lt neben Daten wie der Adresse und den Telefonnummern auch eine Liste der Mitarbeiter. In dieser Liste tauchen alle Mitarbeiter auf, deren Eigenschaft UnternehmenID dem hier angezeigten Unternehmen entspricht (siehe Bild 7).<\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Wenn Sie einen Mitarbeiter angelegt haben, aber ihm noch nicht das gew&uuml;nschte Unternehmen zuordnen konnten, da Sie dieses noch nicht angelegt hatten, k&ouml;nnen Sie die Zuordnung zwischen Unternehmen und Mitarbeiter auch von dieser Stelle aus nachholen: Klicken Sie einfach auf die Schaltfl&auml;che Mitarbeiter hinzuf&uuml;gen und w&auml;hlen Sie den gew&uuml;nschten Mitarbeiter aus (siehe Bild 8). <\/p>\n<p><IMG height=\"314\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic008.png\" width=\"310\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Auswahl eines Mitarbeiters per Filterkriterium<\/span><\/b><\/p>\n<h2>Detailsuche<\/h2>\n<p><IMG height=\"300\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic009.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Suchen von Adressen per Formular<\/span><\/b><\/p>\n<p>Die Detailsuche bietet die M&ouml;glichkeit, gleichzeitig nach Unternehmens- und Personennamen zu suchen. Dazu dient das Formular aus Bild 9, das Sie mit dem Men&uuml;eintrag Detailsuche &ouml;ffnen.<\/p>\n<p><IMG height=\"175\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic010.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10:  Ausgabe von Adressdaten<\/span><\/b><\/p>\n<p>Zur Einschr&auml;nkung der angezeigten Datens&auml;tze stehen drei M&ouml;glichkeiten zur Verf&uuml;gung: die Eingabe des Namens bzw. der Bezeichnung des zu suchenden Eintrags, des Ortes sowie der Objektart. Hiermit schr&auml;nken Sie das Suchergebnis auf die Adressen privater und gesch&auml;ftlicher Personen sowie auf die Unternehmen oder eine Kombination der drei genannten M&ouml;glichkeiten ein.<\/p>\n<h3>Hinweis<\/h3>\n<p>Nat&uuml;rlich k&ouml;nnen Sie die Suchfunktion noch erweitern &#8211; beispielsweise auf die Eingabe der PLZ, der Stra&szlig;e etc. Dazu m&uuml;ssen Sie lediglich die Eingabemaske sowie die Prozedur zur Zusammensetzung der Datensatzherkunft des Listenfeldes anpassen, wie weiter unten genauer erl&auml;utert wird. <\/p>\n<p>Von diesem Formular aus k&ouml;nnen Sie auch eine Liste anzeigen lassen, die alle Datens&auml;tze des Suchergebnisses beinhaltet. Klicken Sie dazu einfach auf die Schaltfl&auml;che Liste anzeigen. Wie in den Office-Anwendungen von Microsoft &uuml;blich, stellt auch die hier vorgestellte Musterl&ouml;sung eine Drucken-Schaltfl&auml;che in der Men&uuml;leiste sowie in der Symbolleiste zur Verf&uuml;gung. Sie k&ouml;nnen den Bericht jederzeit ausdrucken, wenn dieser gerade den Fokus hat (siehe Bild 10).<\/p>\n<p><IMG height=\"211\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic011.png\" width=\"494\" border=\"0\"><\/p>\n<p><!--30percent--><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 11:  Kombinationsfeld zur Auswahl der letzten zehn Eintr&auml;ge<\/span><\/b><\/p>\n<p><IMG height=\"374\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic012.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 12:  Datenmodell der Adressverwaltung<\/span><\/b><\/p>\n<h2>Adressen-Top-Ten<\/h2>\n<p>Mit dem Kombinationsfeld in der Men&uuml;leiste k&ouml;nnen Sie die letzten zehn angezeigten Adressen ausw&auml;hlen und in dem jeweiligen Formular anzeigen lassen (siehe Bild 11).<\/p>\n<p>Der Inhalt des Kombinationsfeldes wird mit jedem in einem der beiden Formulare zur Anzeige der Personen und Unternehmen angezeigten Datensatz aktualisiert. Dabei wird der zuletzt angezeigte Datensatz gel&ouml;scht und der aktuelle hinzugef&uuml;gt. Zus&auml;tzlich wird immer der aktuelle Datensatz im Kombinationsfeld angezeigt.<\/p>\n<p>Das Datenmodell der Musterl&ouml;sung besteht aus den zwei Tabellen tblPersonen und tblUnternehmen sowie einigen weiteren Tabellen wie beispielsweise tblAnreden oder tblKategorien. Letztere dienen lediglich der Speicherung von Werten, die in den beiden Haupttabellen zur Auswahl stehen sollen.<\/p>\n<p>Bild 12 zeigt das Aussehen des Datenmodells der Adressverwaltung.<\/p>\n<p>Die gesch&auml;ftlichen Kontaktdaten wie Telefon, Telefax usw. werden in der Tabelle tblAdressen und nicht in der Tabelle tblUnternehmen gespeichert. So k&ouml;nnen mehrere Ansprechpartner mit den jeweiligen Kontaktdaten zu einem Unternehmen gespeichert werden. Die Tabelle tblUnternehmen stellt ihrerseits Felder f&uuml;r die Speicherung der zentralen Kontaktdaten des Unternehmens zur Verf&uuml;gung.<\/p>\n<h3>Besonderheiten<\/h3>\n<p>Wie Sie dem Datenmodell entnehmen k&ouml;nnen, ist f&uuml;r keine der Beziehungen referentielle Integrit&auml;t festgelegt. Im zweiten Teil des Beitrags in der folgenden Ausgabe von Access im Unternehmen erfahren Sie, warum das so ist und wie die notwendigen Vorkehrungen getroffen werden, um trotzdem zu verhindern, dass z. B. Datens&auml;tze gel&ouml;scht werden, die noch mit anderen Tabellen verkn&uuml;pft sind.<\/p>\n<p>Das Formular frmAdressenliste dient der Anzeige von Unternehmen und Mitarbeitern nach bestimmten Filterkriterien und dem Aufrufen der Detailansicht der entsprechenden Datens&auml;tze.<\/p>\n<p><IMG height=\"331\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic013.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 13:  Die Adressenliste in der Entwurfsansicht<\/span><\/b><\/p>\n<p>Das Besondere an diesem Formular ist, dass in dem Listenfeld mit den Adressen und Unternehmen zwei unterschiedliche Kategorien von Daten angezeigt werden. Zus&auml;tzlich k&ouml;nnen Personen, die in der Datenbank mit einem Unternehmen verkn&uuml;pft sind, zweimal in der Ergebnisliste angezeigt werden &#8211; einmal mit den privaten und einmal mit den gesch&auml;ftlichen Kontaktdaten.<\/p>\n<h2>Verschiedene Objektezusammenf&uuml;hren<\/h2>\n<p>Wenn Sie unterschiedliche Objektarten wie z. B. Personen und Unternehmen zusammenf&uuml;hren und wie eine Objektart behandeln m&ouml;chten, m&uuml;ssen Sie deren Eigenschaften einander angleichen &#8211; sofern das &uuml;berhaupt m&ouml;glich ist. Im vorliegenden Fall funktioniert das recht gut:<\/p>\n<p>Beide haben eine Bezeichnung, die beim Unternehmen dem Namen des Unternehmens entspricht und sich bei einer Person aus dem Vor- und dem Nachnamen zusammensetzt. Die anderen Informationen, die in der Liste angezeigt werden sollen, sind f&uuml;r die unterschiedlichen Objektarten ohnehin gleich: Personen haben genau wie Unternehmen in der Regel eine Telefonnummer, eine Faxnummer und eine E-Mail-Adresse.<\/p>\n<p><IMG height=\"165\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic014.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 14:  Entwurf der Abfrage zur Anpassung der pers&ouml;nlichen Adressdaten einer Person<\/span><\/b><\/p>\n<p>Die Zusammenf&uuml;hrung der Daten erfolgt in zwei Schritten: Zun&auml;chst erstellen Sie drei unterschiedliche Abfragen, die jeweils die Daten einer Gruppe zusammenfassen und sie in eine einheitliche Form bringen. Das bedeutet, dass jede der drei Abfragen die gleichen Feldnamen und die gleiche Anzahl Felder anzeigen soll. Um die drei Abfragen anschlie&szlig;end zusammenf&uuml;hren zu k&ouml;nnen, sollten die Feldnamen gleicher Felder m&ouml;glichst &uuml;bereinstimmen.<\/p>\n<h3>Feldnamen der Abfragenanpassen<\/h3>\n<p>Bild 14 zeigt den Entwurf der Abfrage f&uuml;r die pers&ouml;nlichen Kontakdaten einer Person. Hier sind die beiden Felder Nachname und Vorname zum Feld Bezeichnung zusammengefasst worden. Zus&auml;tzlich zu den eigentlichen Feldern der Abfrage finden Sie noch zwei weitere:<\/p>\n<p>Das Feld Typ enth&auml;lt eine f&uuml;r den jeweiligen Typen stellvertretende Nummer und das Feld TypBezeichnung eine Bezeichnung, die sp&auml;ter im Listenfeld den Typ der Adresse kennzeichnet.<\/p>\n<p><IMG height=\"178\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic015.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 15:  Die Abfrage qryPersonGeschaeftlich<\/span><\/b><\/p>\n<pre>SELECT AdressID, Bezeichnung, Strasse, PLZ, Ort, Typ, Typbezeichnung, Telefon, \r\nTelefax, Mobil, EMail, '''' FROM qryPersonenGeschaeftlich\r\nUNION\r\nSELECT AdressID, Bezeichnung, Strasse, PLZ, Ort, Typ, Typbezeichnung, Telefon, \r\nTelefax, Mobil, EMail, Internetadresse FROM qryPersonenPrivat\r\nUNION \r\nSELECT AdressID, Bezeichnung, Strasse, PLZ, Ort, Typ, Typbezeichnung, Telefon, \r\nTelefax, Mobil, EMail, Internetadresse FROM qryUnternehmen;<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p>Die Abfrage qryPersonGeschaeftlich ist genauso wie die Abfrage qryPersonPrivat aufgebaut (siehe Bild 15). Dort sind allerdings die gesch&auml;ftlichen Informationen TelefonGeschaeftlich, TelefaxGeschaeftlich und EMailGeschaeftlich als Telefon, Telefax und EMail festgelegt. Au&szlig;erdem hat das Feld Typ den Wert 2 und das Feld TypBezeichnung den Wert Person, gesch&auml;ftlich.<\/p>\n<p>Die dritte Abfrage fasst die Unternehmen in entsprechender Weise zusammen. Das Feld Unternehmen wird unter dem Feldnamen Bezeichnung gef&uuml;hrt und die Felder Typ und TypBezeichnung haben die Werte 3 bzw. Unternehmen.<\/p>\n<h3>Abfragen zusammenf&uuml;hren<\/h3>\n<p>Die drei Abfragen werden nun durch eine UNION-Abfrage zusammengef&uuml;hrt (s. Quell-code 1). <\/p>\n<h2>Formular zur Anzeige derAdressliste<\/h2>\n<p>Das Formular besteht aus dem Listenfeld, den zwei Filtertextfeldern und drei Kontrollk&auml;stchen zum Filtern der Adressarten (siehe Bild 14).<\/p>\n<p>Die Datensatzherkunft des Listenfeldes lstAdressen enth&auml;lt die ID, die Bezeichnung, die Telefon- und E-Mail-Daten sowie die Art des Kontaktes der soeben beschriebenen Abfrage qryAdressen:<\/p>\n<pre>SELECT AdressID, Bezeichnung, Telefon, Telefax, EMail, Typbezeichnung, Typ FROM qryAdressen ORDER BY Bezeichnung<\/pre>\n<p>Je nach den gew&auml;hlten Filterkriterien wird die Datensatzherkunft aktualisiert. Daf&uuml;r sorgt die Prozedur aus Quellcode 2. Die Prozedur wird durch das Ereignis Beim Klicken der Schaltfl&auml;che cmdSucheStarten ausgel&ouml;st. Sie &uuml;berpr&uuml;ft die drei Kontrollk&auml;stchen ctlPersonenGeschaeftlich, ctlPersonenPrivat und ctlUnternehmen und stellt eine entsprechende WHERE-Klausel zusammen.<\/p>\n<pre>Private Sub cmdSucheStarten_Click()\r\n    Dim strSQL As String\r\n    Dim strWhere As String\r\n    strSQL = \"SELECT AdressID, Bezeichnung, Telefon, \" _        & \"Telefax, EMail, Typbezeichnung, Typ FROM \" _        & \"qryAdressen\"\r\n    If Me.ctlPersonenGeschaeftlich = 1 Then\r\n        strWhere = strWhere & \"Typ = 2\"\r\n    End If\r\n    If Me.ctlPersonenPrivat = 1 Then\r\n        If Len(strWhere) &gt; 0 Then\r\n            strWhere = strWhere & \" OR \"\r\n        End If\r\n        strWhere = strWhere & \"Typ = 1\"\r\n    End If\r\n    If Me.ctlUnternehmen = 1 Then\r\n        If Len(strWhere) &gt; 0 Then\r\n            strWhere = strWhere & \" OR \"\r\n        End If\r\n        strWhere = strWhere & \"Typ = 3\"\r\n    End If\r\n    If Not Len(strWhere) = 0 Then\r\n        strWhere = \" WHERE (\" & strWhere & \")\"\r\n    End If\r\n    If Len(Me.txtName) &gt; 0 Then\r\n        If Len(strWhere) = 0 Then\r\n            strWhere = \" WHERE\"\r\n        Else\r\n            strWhere = strWhere & \" AND\"\r\n        End If\r\n        strWhere = strWhere & \" Bezeichnung LIKE ''*\" _            & Me.txtName & \"*''\"\r\n    End If\r\n    If Len(Me.txtOrt) &gt; 0 Then\r\n        If Len(strWhere) = 0 Then\r\n            strWhere = \" WHERE\"\r\n        Else\r\n            strWhere = strWhere & \" AND\"\r\n        End If\r\n        strWhere = strWhere & \" Ort LIKE ''*\" _            & Me.txtOrt & \"*''\"\r\n    End If\r\n    strSQL = strSQL & strWhere\r\n    strSQL = strSQL & \" ORDER BY Bezeichnung\"\r\n    Me.lstAdressen.RowSource = strSQL\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p>Auch die beiden Textfelder txtName und txtOrt werden in die WHERE-Klausel einbezogen. Sie werden als Kriterien f&uuml;r Vergleiche mit den Feldern Bezeichnung und Ort der Abfrage qryAdressen verwendet.<\/p>\n<p>Die zwei Zeichenketten strSQL und strWhere werden zusammengefasst und um eine Klausel zur Sortierung der Datens&auml;tze nach der Bezeichnung erg&auml;nzt.<\/p>\n<h3>Kontrollieren derKontrollk&auml;stchen<\/h3>\n<p>Von den Kontrollk&auml;stchen zum Deaktivieren der einzelnen Adressgruppen soll immer mindestens eines aktiviert sein, da sonst eine leere Ergebnismenge im Listenfeld angezeigt wird. Daher wird bei jeder Bet&auml;tigung eines der Kontrollk&auml;stchen eine Prozedur zu deren Kontrolle aufgerufen (s. Quellcode 3). Der Aufruf der Prozedur erfolgt jeweils f&uuml;r die Ereigniseigenschaft Vor Aktualisierung der drei Kontrollk&auml;stchen.<\/p>\n<p>Eines der interessantesten Themen in dieser Musterl&ouml;sung ist der Import der Kontakte von Outlook. Der Import ist eigentlich keine Kunst, da Outlook eine Funktion zum Export der Kontakte in eine Access-Tabelle anbietet. Wenn Sie aber aus den Outlook-Kontakten auch noch Informationen &uuml;ber die jeweiligen Unternehmen der Personen extrahieren und in ein relationales Datenmodell integrieren m&ouml;chten, wird es wieder interessanter.<\/p>\n<p><IMG height=\"459\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic016.png\" width=\"471\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 16:  Entwurfsansicht des Import-Formulars<\/span><\/b><\/p>\n<pre>Private Sub PruefeKontrollkaestchen()\r\n    If Me.ctlPersonenGeschaeftlich = False And _        Me.ctlPersonenPrivat = False _        And Me.ctlUnternehmen = False Then\r\n        MsgBox \"Sie m&uuml;ssen mindestens eine Objektart \" _            & \" ausw&auml;hlen.\", vbOKOnly, _            \"Fehlende Objektart\"\r\n        Cancel = True\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<h2>Das Import-Formular<\/h2>\n<p>Das Formular frmImport enth&auml;lt alle Funktionen, die f&uuml;r den Import von Outlook-Kontakten ben&ouml;tigt werden (siehe Bild 16). <\/p>\n<p>Im oberen Bereich befindet sich eine Schaltfl&auml;che, mit der ein Outlook-eigener Dialog zur Auswahl des gew&uuml;nschten Kontakte-Ordners ge&ouml;ffnet werden kann.<\/p>\n<p>Im mittleren Bereich befinden sich einige Steuerelemente zum Festlegen von Importparametern. Dort werden der Modus f&uuml;r den Umgang mit doppelten Datens&auml;tzen sowie die Herkunftsfelder f&uuml;r die unterschiedlichen E-Mail-Felder festgelegt.<\/p>\n<p>Der untere Bereich enth&auml;lt einen Fortschrittsbalken und ein Textfeld, die beide der Anzeige des aktuellen Status des Imports dienen.<\/p>\n<h2>Voraussetzung: Verweis auf die Outlook-Objektbibliothek<\/h2>\n<p>Wie bei der Integration externer Applikationen &uuml;blich, ist auch hier das Setzen eines Verweises auf die auf dem Zielrechner verwendete Version von Outlook notwendig.<\/p>\n<h3>Hinweis<\/h3>\n<p>Eine Anleitung zum Setzen von Verweisen finden Sie im Beitrag Verweise auf Bibliotheken setzen in der Ausgabe 2\/2002 von Access im Unternehmen. <\/p>\n<h2>Ausw&auml;hlen des Kontakte-Ordners<\/h2>\n<p>Die Schaltfl&auml;che cmdKontaktordnerAuswaehlen l&ouml;st die Prozedur aus Quellcode 4 aus. Anhand dieser Prozedur k&ouml;nnen Sie sich ein wenig mit einem Teil des Objektmodells von Outlook vertraut machen.<\/p>\n<p>An der Spitze steht wie bei Office-Produkten &uuml;blich das Application-Objekt. Direkt darunter finden Sie das Namespace-Objekt mit den verschiedenen Ordnern und weiteren Objekten. Die Objekte von Outlook wie Kontakte, Termine usw. befinden sich im MAPI-Namespace, den Sie &uuml;ber die Methode GetNamespace des Application-Objekts referenzieren k&ouml;nnen.<\/p>\n<pre>Private Sub cmdKontaktordnerAuswaehlen_Click()\r\n    Dim olApplication As Outlook.Application\r\n    Dim olNamespace As Outlook.NameSpace\r\n    Dim olFolder As Outlook.MAPIFolder\r\n    Dim olItems As Outlook.Items\r\n    Dim olItem As Object\r\n    Set olApplication = Outlook.Application\r\n    Set olNamespace = olApplication.GetNamespace(\"MAPI\")\r\n    Set olFolder = olNamespace.PickFolder\r\n    If olFolder.DefaultItemType &lt;&gt; olContactItem Then\r\n        MsgBox \"Dies ist kein Kontakte-Ordner. Die \" _            & \"Aktion wird abgebrochen.\", vbOKCancel _            + vbExclamation, \"Falscher Ordner\"\r\n        Me.ogrImport.Enabled = False\r\n        Me.cmdImportieren.Enabled = False\r\n    Else\r\n        Me.txtKontakteordner = olFolder.Name\r\n        Me.txtEntryID = olFolder.EntryID\r\n        Me.ogrImport.Enabled = True\r\n        Me.cmdImportieren.Enabled = True\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<p>Mit der Methode PickFolder des MAPI-Namespace k&ouml;nnen Sie einen Dialog zur Auswahl eines Ordners von Outlook anzeigen (siehe Bild 17).<\/p>\n<p><IMG height=\"296\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic017.png\" width=\"359\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 17:  Auswahl eines Outlook-Ordners<\/span><\/b><\/p>\n<p>Nachdem der Benutzer mit Hilfe des Dialogs Ordner ausw&auml;hlen den gew&uuml;nschten Ordner ausgew&auml;hlt hat, muss die Prozedur &uuml;berpr&uuml;fen, ob es sich bei dem Ordner um einen Kontakte-Ordner handelt. Falls nein, wird der Dialog geschlossen und eine entsprechende Meldung angezeigt. Anderenfalls werden die Steuerelemente von Schritt 2 aktiviert und der Name des Ordners in ein sichtbares und die EntryID in ein unsichtbares Textfeld geschrieben.<\/p>\n<p>Die EntryID ist ein eindeutiges Merkmal des ausgew&auml;hlten Ordners, das Sie sp&auml;ter f&uuml;r den Zugriff auf diesen Ordner verwenden werden.<\/p>\n<h2>Festlegen derImport-Parameter<\/h2>\n<p>Die Musterl&ouml;sung beinhaltet exemplarisch zwei Parameter, die den Import ma&szlig;geblich beeinflussen. Der erste dient der Festlegung der Vorgehensweise f&uuml;r das Auftreten bereits vorhandener Eintr&auml;ge, der zweite legt fest, aus welchen Feldern die Daten f&uuml;r die verschiedenen E-Mail-Adressen bezogen werden.<\/p>\n<h3>Doppelte Kontakte &#8211; was nun<\/h3>\n<p>Die Existenz doppelter Kontakte wird in der vorliegenden Import-Routine lediglich anhand eventueller Gemeinsamkeiten bez&uuml;glich des Vor- und des Nachnamens &uuml;berpr&uuml;ft.<\/p>\n<h3>Hinweis<\/h3>\n<p>Wenn Sie den Import nicht nur einmal durchf&uuml;hren m&ouml;chten, um alle Outlookdaten in Ihre neue Adressdatenbank zu importieren, sondern die Best&auml;nde vermutlich &ouml;fter synchronisieren werden, sollten Sie von der EntryID Gebrauch machen. Sie ist nicht nur ein eindeutiges Merkmal der Ordner von Outlook, sondern auch f&uuml;r alle Elemente wie Kontakte, Termine etc. Sie k&ouml;nnen diese ID zus&auml;tzlich in die Tabelle tblAdressen schreiben, um f&uuml;r Synchronisationszwecke schnell korrespondierende Datens&auml;tze zu finden. <\/p>\n<pre>Private Sub cmdImportieren_Click()\r\n    Dim olApplication As Outlook.Application\r\n    Dim olNamespace As Outlook.NameSpace\r\n    Dim olFolder As Outlook.MAPIFolder\r\n    Dim olItems As Outlook.Items\r\n    Dim olItem As Object\r\n    Set olApplication = Outlook.Application\r\n    Set olNamespace = olApplication.GetNamespace(\"MAPI\")\r\n    Set olFolder = olNamespace.GetFolderFromID(Me.txtEntryID)\r\n    Dim db As Database\r\n    Dim rst As Recordset\r\n    Dim AnzahlKontakte As Integer\r\n    Dim i As Integer\r\n    Dim AktuelleAdresse As Variant\r\n    Me.txtStatus.Enabled = True\r\n    Me.ogrImportieren.Enabled = True\r\n    Set olItems = olFolder.Items\r\n    Set db = CurrentDb\r\n    Set rst = db.OpenRecordset(\"tblAdressen\", dbOpenDynaset)\r\n    AnzahlKontakte = olItems.Count\r\n    i = 0<\/pre>\n<p><b>Quellcode 5 (Teil 1)<\/b><\/p>\n<p><IMG height=\"561\" src=\"..\/fileadmin\/_temp_\/{01EF7B0D-F5F5-4190-B786-D16CD556FCB9}\/pic018.png\" width=\"379\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 18:  Synchronisation von Adressdatens&auml;tzen<\/span><\/b><\/p>\n<p>Die Musterl&ouml;sung bietet drei M&ouml;glichkeiten an:<\/p>\n<li>Doppelte Datens&auml;tze werden komplett mit den aktuellen Daten von Outlook &uuml;berschrieben.<\/li>\n<li>Doppelte Datens&auml;tze werden nicht anger&uuml;hrt.<\/li>\n<li>Doppelte Datens&auml;tze werden gegen&uuml;bergestellt, der Benutzer kann den zu &uuml;bernehmenden Datensatz festlegen (siehe Bild 18).<\/li>\n<p>Den Ablauf des Import-Vorgangs k&ouml;nnen Sie Quellcode 5 entnehmen. Die Prozedur beginnt mit der Deklaration und Festlegung der f&uuml;r den Zugriff auf den Kontakte-Ordner ben&ouml;tigten Objekte. Ebenso werden ein Database- sowie ein Recordset-Objekt zum Speichern der Kontakte in der Datenbank deklariert. F&uuml;r die Auslegung des Fortschrittsbalkens wird au&szlig;erdem die Anzahl der Kontakte in dem ausgew&auml;hlten Ordner ermittelt.<\/p>\n<p>Der Hauptteil der Prozedur besteht aus einer Schleife, die alle in dem Ordner enthaltenen Objekte durchl&auml;uft. Innerhalb der Schleife werden nur Objekte des Typs olContact ber&uuml;cksichtigt. Das ist wichtig, da es in Kontakte-Ordnern auch andere Objekte gibt, wie z. B. Verteilerlisten. Mit der Funktion IstDuplikatVorhandenImport wird &uuml;berpr&uuml;ft, ob bereits ein Datensatz mit identischem Namen vorhanden ist. Falls nicht, wird einfach ein neuer Datensatz angelegt und die Funktion EintraegeUebernehmen aufgerufen, die die entsprechenden Felder des Outlook-Kontaktes in den Datensatz schreibt. Falls ja, wird &uuml;berpr&uuml;ft, welchen Importmodus der Anwender ausgew&auml;hlt hat. F&uuml;r jeden der drei F&auml;lle wird die geeignete Aktion durchgef&uuml;hrt.<\/p>\n<pre>    For Each olItem In olItems\r\n        i = i + 1\r\n        If olItem.Class = olContact Then\r\n            AktuelleAdresse = IstDuplikatVorhandenImport(olItem.FirstName, _                olItem.LastName)\r\n            If AktuelleAdresse = False Then\r\n                rst.AddNew\r\n                EintraegeUebernehmen rst, olItem\r\n                rst.Update\r\n            Else\r\n                Select Case Me.ogrImport\r\n                    Case 1\r\n                        rst.FindFirst \"AdressID = \" & AktuelleAdresse\r\n                        rst.Edit\r\n                        EintraegeUebernehmen rst, olItem\r\n                        Debug.Print \"Hauptprozedur: \" & rst!EMail\r\n                        rst.Update\r\n                    Case 3\r\n                        DoCmd.OpenForm \"frmSynchronisation\", Windowmode:=acDialog, _                            WhereCondition:=\"AdressID = \" & AktuelleAdresse\r\n                        If IstFormularGeoeffnet(\"frmSynchronisation\") Then\r\n                            If Not Forms!frmSynchronisation!ogrSynchronisation = 1 _                                Then\r\n                                rst.FindFirst \"AdressID = \" & AktuelleAdresse\r\n                                rst.Edit\r\n                                EintraegeUebernehmen rst, olItem\r\n                                rst.Update\r\n                            End If\r\n                            DoCmd.Close acForm, \"frmSynchronisation\"\r\n                        End If\r\n                End Select\r\n            End If\r\n        End If\r\n        DoEvents\r\n        Me.recFortschrittsbalken.Width = Me.recLaenge.Width \/ AnzahlKontakte * i\r\n        Me.txtStatus = i & \" von \" & AnzahlKontakte & \" eingelesen.\"\r\n    Next olItem\r\n    Me.cmdBeenden.Enabled = True\r\nEnd Sub<\/pre>\n<p><b>Quellcode 5 (Fortsetzung)<\/b><\/p>\n<h3>Die Funktion EintraegeUebernehmen<\/h3>\n<p>Die Funktion aus Quellcode 6 liest die einzelnen Eigenschaften der Kontakt-Objekte ein und schreibt sie in den aktuellen Datensatz. Dabei gibt es einige Besonderheiten:<\/p>\n<li>Wenn in Outlook kein Geburtsdatum f&uuml;r einen Kontakt angegeben ist, liest Access den Wert 1\/1\/4501 ein. Diesen Bug umgehen Sie, indem Sie diesen Wert &uuml;berpr&uuml;fen.<\/li>\n<li>Unternehmen, Anrede und Position werden durch weitere Funktionen ermittelt. Die genaue Erl&auml;uterung dieser Funktionen folgt im n&auml;chsten Teil dieses Beitrags.<\/li>\n<li>Auch das Einlesen der E-Mail-Adressen erfolgt in einer separaten Funktion. Auch diese Funktion wird in der n&auml;chsten Ausgabe vorgestellt.<\/li>\n<pre>Public Function EintraegeUebernehmen(rst As Recordset, _    olItem As Object)\r\n    rst!EntryID = olItem.EntryID\r\n    rst!AnredeID = AnredeErmitteln(olItem.Title)\r\n    rst!Vorname = olItem.FirstName\r\n    rst!Nachname = olItem.LastName\r\n    rst!Strasse = olItem.HomeAddressStreet\r\n    rst!PLZ = olItem.HomeAddressPostalCode\r\n    rst!Ort = olItem.HomeAddressCity\r\n    rst!Telefon = olItem.HomeTelephoneNumber\r\n    rst!Telefax = olItem.HomeFaxNumber\r\n    rst!Mobil = olItem.MobileTelephoneNumber\r\n    rst!EMail = EMailErmitteln(\"cboEMail\", olItem)\r\n    rst!Internetadresse = olItem.WebPage\r\n    If Not olItem.Birthday = \"1\/1\/4501\" Then\r\n        rst!Geburtsdatum = olItem.Birthday\r\n    End If\r\n    rst!UnternehmenID = _        CInt(UnternehmenErmitteln(olItem))\r\n    rst!Abteilung = olItem.Department\r\n    rst!PositionID = PositionErmitteln(olItem.JobTitle)\r\n    rst!TelefonGeschaeftlich = _        olItem.BusinessTelephoneNumber\r\n    rst!TelefaxGeschaeftlich = olItem.BusinessFaxNumber\r\n    rst!EMailGeschaeftlich = _        EMailErmitteln(\"cboEMailGeschaeftlich\", olItem)\r\nEnd Function<\/pre>\n<p><b>Quellcode 6<\/b><\/p>\n<h3>Der Fortschrittsbalken<\/h3>\n<p>Der Fortschrittsbalken ist mehr ein Gimmick. Er besteht lediglich aus einem gr&uuml;nen Rechteck-Steuerelement, das mit jedem Durchlauf um einen der Anzahl der einzulesenden Datens&auml;tze entsprechenden Bruchteil vergr&ouml;&szlig;ert wird.<\/p>\n<p>Die vorliegende Musterl&ouml;sung enth&auml;lt wesentlich mehr Funktionen, als in diesem Beitrag im Detail beschrieben werden k&ouml;nnen.<\/p>\n<p>Daher wurden f&uuml;r diesen Beitrag einige Themen herausgehoben, die nicht in jeder Musterl&ouml;sung vorkommen, wie z. B. die Darstellung von Daten unterschiedlicher Art in Listenfeldern oder der Import von Kontaktdaten aus Outlook.<\/p>\n<p>Um die vielen anderen Features wie z. B. die Erstellung und Steuerung der Men&uuml;leiste nachvollziehen zu k&ouml;nnen, sollten Sie sich einfach ein wenig in den in den Modulen der Datenbank enthaltenen Quellcode vertiefen &#8211; oder Sie warten das Erscheinen der n&auml;chsten Ausgabe von Access im Unternehmen ab.<\/p>\n<p>Dort werden unter anderem der Einsatz der Men&uuml;leiste sowie die Erstellung der Formulare und Berichte beschrieben. <\/p>\n<p>Mit der vorliegenden Beschreibung des Imports von Daten aus Outlook wird es Ihnen hoffentlich leicht fallen, eine &auml;hnliche Funktion f&uuml;r den umgekehrten Weg zu implementieren.<\/p>\n<p>Weitere m&ouml;gliche Erweiterungen sind sicher die Berichte zur Anzeige der Stammdaten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Verwaltung von Adressen ist eigentlich eine triviale Angelegenheit. Entweder man arbeitet mit Outlook und speichert dort seine Adressen oder man gibt sich gar nicht erst mit dem Computer ab und verwendet das gute alte Adressb&uuml;chlein. Das st&uuml;rzt wenigstens nie ab und verliert niemals Daten &#8211; schon gar nicht auf unerkl&auml;rliche Weise. Leider taugt das Adressb&uuml;chlein genauso wenig als Datenher-kunft f&uuml;r einen Serienbrief mit Word wie Outlook zur Verwaltung von Firmenkontakten mit mehreren Ansprechpartnern. F&uuml;r fortgeschrittene Anforderungen muss also doch wieder eine Datenbankanwendung herhalten, wie der vorliegende Beitrag zeigt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662003,66042003,44000027,44000033],"tags":[],"class_list":["post-55000113","post","type-post","status-publish","format-standard","hentry","category-662003","category-66042003","category-Loesungen","category-Outlook"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Adressverwaltung mit Outlookschnittstelle - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adressverwaltung mit Outlookschnittstelle\" \/>\n<meta property=\"og:description\" content=\"Die Verwaltung von Adressen ist eigentlich eine triviale Angelegenheit. Entweder man arbeitet mit Outlook und speichert dort seine Adressen oder man gibt sich gar nicht erst mit dem Computer ab und verwendet das gute alte Adressb&uuml;chlein. Das st&uuml;rzt wenigstens nie ab und verliert niemals Daten - schon gar nicht auf unerkl&auml;rliche Weise. Leider taugt das Adressb&uuml;chlein genauso wenig als Datenher-kunft f&uuml;r einen Serienbrief mit Word wie Outlook zur Verwaltung von Firmenkontakten mit mehreren Ansprechpartnern. F&uuml;r fortgeschrittene Anforderungen muss also doch wieder eine Datenbankanwendung herhalten, wie der vorliegende Beitrag zeigt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:28+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/1ac616f095c24c55ace9b4787e909248\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"21\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Adressverwaltung mit Outlookschnittstelle\",\"datePublished\":\"2020-05-06T15:17:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/\"},\"wordCount\":3654,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/1ac616f095c24c55ace9b4787e909248\",\"articleSection\":[\"2003\",\"4\\\/2003\",\"L\u00f6sungen\",\"Outlook\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/\",\"name\":\"Adressverwaltung mit Outlookschnittstelle - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/1ac616f095c24c55ace9b4787e909248\",\"datePublished\":\"2020-05-06T15:17:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/1ac616f095c24c55ace9b4787e909248\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/1ac616f095c24c55ace9b4787e909248\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressverwaltung_mit_Outlookschnittstelle\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Adressverwaltung mit Outlookschnittstelle\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Adressverwaltung mit Outlookschnittstelle - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/","og_locale":"de_DE","og_type":"article","og_title":"Adressverwaltung mit Outlookschnittstelle","og_description":"Die Verwaltung von Adressen ist eigentlich eine triviale Angelegenheit. Entweder man arbeitet mit Outlook und speichert dort seine Adressen oder man gibt sich gar nicht erst mit dem Computer ab und verwendet das gute alte Adressb&uuml;chlein. Das st&uuml;rzt wenigstens nie ab und verliert niemals Daten - schon gar nicht auf unerkl&auml;rliche Weise. Leider taugt das Adressb&uuml;chlein genauso wenig als Datenher-kunft f&uuml;r einen Serienbrief mit Word wie Outlook zur Verwaltung von Firmenkontakten mit mehreren Ansprechpartnern. F&uuml;r fortgeschrittene Anforderungen muss also doch wieder eine Datenbankanwendung herhalten, wie der vorliegende Beitrag zeigt.","og_url":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:28+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/1ac616f095c24c55ace9b4787e909248","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"21\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Adressverwaltung mit Outlookschnittstelle","datePublished":"2020-05-06T15:17:28+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/"},"wordCount":3654,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/1ac616f095c24c55ace9b4787e909248","articleSection":["2003","4\/2003","L\u00f6sungen","Outlook"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/","url":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/","name":"Adressverwaltung mit Outlookschnittstelle - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/1ac616f095c24c55ace9b4787e909248","datePublished":"2020-05-06T15:17:28+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/1ac616f095c24c55ace9b4787e909248","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/1ac616f095c24c55ace9b4787e909248"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Adressverwaltung_mit_Outlookschnittstelle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Adressverwaltung mit Outlookschnittstelle"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000113"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000113\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}