{"id":55000810,"date":"2011-12-01T00:00:00","date_gmt":"2020-05-22T21:59:33","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=810"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Der_MergeAssistent","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/","title":{"rendered":"Der Merge-Assistent"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/ea3444fca7ec4038bf19aa980d2f121f\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Es kommt immer mal wieder vor, dass man Daten aus verschiedenen Quellen in einer einzigen Datenbank zusammenf&uuml;hren muss. Sofern die Quelldaten eine gewisse Struktur aufweisen oder sich mithilfe von Abfragen so darstellen lassen, dass das Datenmodell der Zieldatenbank abgebildet werden kann, gibt es gute Nachrichten: Sie k&ouml;nnen dann den in diesem Beitrag vorgestellten Merge-Assistent verwenden, um sich die Arbeit zu vereinfachen. Mit diesem Assistenten stellen Sie schnell die notwendigen Daten zusammen und starten den Abgleich per Mausklick.<\/b><\/p>\n<p>Das Zusammenf&uuml;hren von Daten mehrerer Datenquellen kann eine komplizierte Angelegtenheit werden &#8211; vor allem, wenn die Daten aus verschiedenen Tabellen stammen, die auch noch miteinander verkn&uuml;pft sind.<\/p>\n<p>Welche Konstellationen es dort gibt und mit welchen Abl&auml;ufen Sie einen solchen Import selbst programmieren k&ouml;nnen, haben wir bereits im Beitrag <b>Daten zusammenf&uuml;hren <\/b>beschrieben (<b>www.access-im-unternehmen.de\/803<\/b>).<\/p>\n<p>Im vorliegenden Beitrag stellen wir Ihnen ein Tool vor, mit dem Sie den Abgleich einfach durchf&uuml;hren k&ouml;nnen &#8211; vorausgesetzt, die Daten erf&uuml;llen die eine oder andere Bedingung. Zum Beispiel sollten die Daten der Ziel- und der Quelltabelle beide in einem ordentlichen Datenmodell vorliegen und die Tabellen jeweils einen Prim&auml;rschl&uuml;ssel aufweisen. Ist dies nicht der Fall, ist ein Import zwar nicht ausgeschlossen, aber der Aufwand wird dann h&ouml;her.<\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Verf&uuml;gbarmachen der Daten<\/p>\n<p>Im ersten Schritt entscheiden Sie, welche der Datenbanken das Ziel der Zusammenf&uuml;hrung sein soll. Diese Datenbank &ouml;ffnen Sie und machen die Daten der anderen Datenquelle in Form entsprechender Verkn&uuml;pfungen verf&uuml;gbar.<\/p>\n<p>Befinden sich die anderen Daten in einer Access-Datenbank, erstellen Sie einfache Verkn&uuml;pfungen auf alle Tabellen, deren Daten in der Zieldatenbank landen sollen.<\/p>\n<p>Verwenden Sie andere Datenquellen wie etwa Excel-Tabellen oder auch andere Datenbankformate, stellen Sie ebenfalls entsprechende Verkn&uuml;pfungen her.<\/p>\n<p><b>Tool installieren<\/b><\/p>\n<p>Der aktuelle Beitrag liefert das Tool in Form einiger Objekte, die Sie in die Zieldatenbank importieren m&uuml;ssen. In diesem Fall handelt es sich um die folgenden Objekte der Beispieldatenbank:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Formular <b>frmAbgleich<\/b><\/li>\n<li class=\"aufz-hlung\">Formular <b>frmAbgleichDetails<\/b><\/li>\n<li class=\"aufz-hlung\">Tabelle <b>tblPKAltUndNeu<\/b><\/li>\n<li class=\"aufz-hlung\">Tabelle<b> tblAbgleiche<\/b><\/li>\n<li class=\"aufz-hlung\">Klasse <b>clsOrder<\/b><\/li>\n<li class=\"aufz-hlung\">Modul <b>mdlTools_Abgleich<\/b><\/li>\n<\/ul>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Was nicht passt, wird passend gemacht<\/p>\n<p>Sollten die Daten aus unterschiedlich aufgebauten Datenquellen stammen, m&uuml;ssen Sie diese so weit wie m&ouml;glich angleichen. Da es allzuviele verschiedene Varianten gibt, hier nur ein allgemeiner Hinweis: Formen Sie die Daten der verkn&uuml;pften Tabellen mithilfe von Abfragen in der lokalen Tabelle so um, dass diese zu den Tabellen des hiesigen Datenmodells passen.<\/p>\n<p>Damit ist sowohl die Aufteilung auf verschiedene Tabellen beziehungsweise Abfragen gemeint als auch die Benennung der Feldnamen.<\/p>\n<p><b>Voraussetzungen<\/b><\/p>\n<p>Die wichtigste Voraussetzung f&uuml;r das Funktionieren der L&ouml;sung ist, dass jede Zieltabelle nur einen einzigen Prim&auml;rschl&uuml;ssel besitzt. Mehr als einen Prim&auml;rschl&uuml;ssel wie etwa der zusammengesetzte Prim&auml;rschl&uuml;ssel der Tabelle <b>Bestellungen<\/b> der Nordwind-Datenbank kann die Anwendung nicht verarbeiten.<\/p>\n<p><b>Festlegen der Import-Reihenfolge<\/b><\/p>\n<p>Wenn die verkn&uuml;pften Daten in entsprechender Form vorliegen, &uuml;berlegen Sie sich, in welcher Reihenfolge Sie die Daten importieren m&ouml;chten. Haben Sie beispielsweise Kunden, Artikel, Bestellungen und Bestelldetails, beginnen Sie mit den Tabellen, die keine Fremdschl&uuml;sselfelder zur Herstellung von Verkn&uuml;pfungen mit anderen Tabellen enthalten.<\/p>\n<p>Die Tabelle mit den Kundendaten ist ein guter Start: Sie sollte au&szlig;er gegebenenfalls ein paar Lookup-Feldern wie zum Ausw&auml;hlen der Anrede et cetera keinerlei Fremdschl&uuml;sselfelder enthalten. Falls doch, importieren Sie diese zuerst, soweit noch nicht vorhanden.<\/p>\n<p>Bestellungen werden einem Kunden zugeordnet, also werden Sie die Tabelle mit den Bestellungen erst nach den Kunden importieren. Die Bestelldetails legen fest, welche Bestellung welche Artikel enth&auml;lt &#8211; hier m&uuml;ssen Sie zun&auml;chst die Artikeldaten abgleichen.<\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Zusammenf&uuml;hrung<\/p>\n<p>Eine der gr&ouml;&szlig;ten Herausforderungen besteht darin, bereits vorhandene Daten zu erkennen und diese nicht erneut zu importieren &#8211; hier gewinnt das Wort Zusammenf&uuml;hrung besondere Bedeutung. Insbesondere kann es vorkommen, dass ein Kunde sowohl in der ersten als auch in der zweiten Datenbank vorkommt.<\/p>\n<p>Dann soll nat&uuml;rlich kein weiterer Kundendatensatz angelegt werden, sondern einer der beiden bestehenden Datens&auml;tze &uuml;bernommen werden.<\/p>\n<p>Dies erfordert zwei Arbeitsschritte: Zun&auml;chst den vorbereitenden Schritt, in dem Sie festlegen, nach welchen Feldern die neuen und die vorhandenen Datens&auml;tze abgeglichen werden sollen.<\/p>\n<p>Im zweiten Schritt werden beim Zusammenf&uuml;hren der Daten Dubletten auftauchen: Hier m&uuml;ssen Sie eine M&ouml;glichkeit bieten, die beiden Datens&auml;tze zu vergleichen und zu entscheiden, welcher der beiden Datens&auml;tze &uuml;bernommen werden soll.<\/p>\n<p>Gegebenenfalls sollen ja selbst zwei Kundendatens&auml;tze noch kombiniert werden, um etwa den ersten Kundendatensatz, der zwar die richtige Adresse enth&auml;lt, um die im zweiten Kundendatensatz aufgef&uuml;hrte Telefonnummer zu erg&auml;nzen. Prinzipiell m&uuml;sste der Benutzer also f&uuml;r jedes einzelne Feld entscheiden k&ouml;nnen, aus welcher Datenbank der Inhalt entnommen wird. Sie ahnen es bereits: Diesem Formular messen wir besondere Bedeutung zu.<\/p>\n<p><b>Anh&auml;ngsel zusammenbringen<\/b><\/p>\n<p>Beim Vereinigen der Kundendaten ber&uuml;cksichtigen Sie auch gleich die Daten solcher Tabellen, die per Fremdschl&uuml;sselfeld mit der Kundentabelle verkn&uuml;pft sind. Im Falle der Bestellungen k&ouml;nnen folgende Situationen auftreten, wenn ein Kunde mit einer Bestellung aus Datenbank B in Datenbank A importiert werden soll:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Der Kunde ist bereits vorhanden. Dann wird nur der Bestelldatensatz in die Bestellungen-Tabelle der Zieldatenbank importiert und das Fremdschl&uuml;sselfeld mit dem Prim&auml;rschl&uuml;sselwert des bestehenden Kundendatensatzes gef&uuml;llt.<\/li>\n<li class=\"aufz-hlung\">Der Kunde ist noch nicht vorhanden. Dann wird zun&auml;chst der Kunde neu angelegt. Dieser erh&auml;lt dabei in der Regel einen neuen Prim&auml;rschl&uuml;sselwert, da der vorhandene ja bereits vergeben sein k&ouml;nnte. Die Bestellung wird beim Importieren mit dieser neu vergebenen Kunden-ID versehen.<\/li>\n<\/ul>\n<p><b>Prim&auml;rschl&uuml;sselfelder<\/b><\/p>\n<p>Wie oben bereits erw&auml;hnt, muss zumindest die Zieltabelle genau ein Prim&auml;rschl&uuml;sselfeld enthalten.<\/p>\n<p>Dieses kann als Autowert oder als herk&ouml;mmliches Zahlenfeld ausgelegt werden (Textfelder oder GUIDs als Datentyp von Prim&auml;rschl&uuml;sselfeldern unterst&uuml;tzt die hier vorgestellte L&ouml;sung nicht).<\/p>\n<p>Wenn es sich um einen Autowert handelt, gibt es beim Einf&uuml;gen von Daten nur eine M&ouml;glichkeit: Der Datensatz muss mit einem automatisch vergebenen Prim&auml;rschl&uuml;sselwert angelegt werden.<\/p>\n<p>Ist das Prim&auml;rschl&uuml;sselfeld nicht als Autowertfeld deklariert, soll die L&ouml;sung dieses Beitrags selbst einen geeigneten Wert bestimmen. In diesem Fall wird der bisher gr&ouml;&szlig;te als Prim&auml;rschl&uuml;ssel vergebene Wert ermittelt und der Wert <b>1 <\/b>hinzu addiert.<\/p>\n<p>Ein Abgleich auf Basis der Prim&auml;rschl&uuml;sselwerte ist ebenfalls vorgesehen. Sollten Sie also beispielsweise die Daten einer Kundentabelle importieren wollen, die zun&auml;chst nur in einer Kopie der Anwendung verwendet und dann in mehreren Kopien erweitert wurde, werden die Daten bei der Zusammenf&uuml;hrung anhand des Prim&auml;rschl&uuml;ssels abgeglichen.<\/p>\n<p>Wenn gleiche Datens&auml;tze zusammengef&uuml;hrt werden sollen, die aber nicht zwingend den gleichen Prim&auml;rschl&uuml;sselwert besitzen, m&uuml;ssen Sie Vergleichskriterien wie <b>Vorname <\/b>und <b>Nachname <\/b>oder &auml;hnliche festlegen &#8211; dazu stehen alle gemeinsamen Felder der Ziel- und der Quelltabelle bereit.<\/p>\n<p><b>Bestehende Daten<\/b><\/p>\n<p>Eine interessante Herausforderung ist der Abgleich mit bestehenden Daten. Wie soeben beschrieben, sollen die Anwendung Datens&auml;tze aus zwei Datenbanken, die &uuml;bereinstimmen k&ouml;nnten (also beispielsweise zwei Kunden, die Produkte gekauft haben, die mit verschiedenen Datenbanken verwaltet werden), zusammenf&uuml;hren k&ouml;nnen.<\/p>\n<p>Dazu legen Sie fest, anhand welcher Felder &uuml;bereinstimmende Datens&auml;tze erkannt werden sollen, also beispielsweise Vorname und Nachname. Je nach Menge der Datens&auml;tze reicht dies bereits aus, sonst nehmen Sie noch weitere Felder wie Stra&szlig;e, PLZ oder Ort hinzu.<\/p>\n<p>W&auml;hlen Sie die Vergleichsfelder jedoch sorgf&auml;ltig aus: Kunden sind nicht zur Konsistenz verpflichtet, was die Eingabe etwa in Bestellformularen angeht. Mal schreiben sie <b>Stra&szlig;e <\/b>als ganzes Wort aus, mal geben sie nur <b>Str. <\/b>ein. Verlassen Sie sich also eher auf Daten wie die Postleitzahl.<\/p>\n<p><!--30percent--><\/p>\n<p>Wenn die Anwendung eine Gemeinsamkeit zwischen einem bestehenden Datensatz der Zieldatenbank und einem aus der Quelldatenbank feststellt, soll ein Formular erscheinen, das die Daten nebeneinanderstellt. Es soll die folgenden M&ouml;glichkeiten bieten:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Best&auml;tigen des vorhandenen Datensatzes,<\/li>\n<li class=\"aufz-hlung\">&Uuml;bernehmen des neuen Datensatzes,<\/li>\n<li class=\"aufz-hlung\">Zusammenf&uuml;hren des Datensatzes aus Feldern beider Versionen oder<\/li>\n<li class=\"aufz-hlung\">&Uuml;bernahme des Datensatzes der Quelltabelle als neuen Datensatz.<\/li>\n<\/ul>\n<p><b>Automatischer Abgleich<\/b><\/p>\n<p>Wenn Sie sicher sind, dass Datens&auml;tze etwa mit gemeinsamen Werten in den Feldern <b>Vorname<\/b>, <b>Nachname <\/b>und <b>PLZ <\/b>sich auf die gleichen Personen beziehen, k&ouml;nnen Sie diese automatisch importieren lassen. Das bedeutet, dass die Anwendung zwar erkennt, dass die Datens&auml;tze aus der Ziel- und der Quelltabelle &auml;hnlich beziehungsweise gleich sind, aber kein Formular &ouml;ffnet, mit dem Sie den Abgleich pr&uuml;fen k&ouml;nnen.<\/p>\n<p>Stattdessen tr&auml;gt die Anwendung nur den alten und den neuen Prim&auml;rschl&uuml;sselwert in eine Mapping-Tabelle ein. Diese hat den Zweck, dass Tabellen, die per Fremdschl&uuml;sselfeld auf diese Tabelle verweisen, beim anschlie&szlig;enden Import den neuen Prim&auml;rschl&uuml;sselwert der verkn&uuml;pften Tabelle in das Fremdschl&uuml;sselfeld &uuml;bernehmen k&ouml;nnen.<\/p>\n<p>Bei Tabellen wie <b>tblAnrede <\/b>et cetera k&ouml;nnen Sie den Abgleich nat&uuml;rlich automatisch ablaufen lassen &#8211; vorausgesetzt, f&uuml;r ein Feld wie Anrede wurde ein eindeutiger Schl&uuml;ssel festgelegt, w&uuml;rde normalerweise ebenfalls das Vergleichsformular erscheinen. Sie k&ouml;nnen solche Daten jedoch auch automatisch abgleichen lassen.<\/p>\n<p><b>Konfiguration eines Imports<\/b><\/p>\n<p>Schauen wir uns nun an, wie das alles mit der L&ouml;sung aus diesem Beitrag funktioniert. Voraussetzung daf&uuml;r ist, dass Sie die oben erw&auml;hnten Objekte aus der Beispieldatenbank in die Zieldatenbank Ihrer Datenzusammenf&uuml;hrung kopiert haben und dass Verkn&uuml;pfungen zu den zu importierenden Daten bestehen.<\/p>\n<p>Sollten Sie gerade keine eigenen Datenbanken f&uuml;r diesen Vorgang parat haben, k&ouml;nnen Sie die Beispieldatenbanken <b>S&uuml;dwind.mdb <\/b>und <b>Friseurbedarf.mdb <\/b>verwenden, die &uuml;ber eine gleiche Datenstruktur, aber teilweise verschiedene Daten verf&uuml;gen.<\/p>\n<p>In diesem Fall starten Sie den Vorgang, indem Sie das Formular <b>frmAbgleich <\/b>&ouml;ffnen. Dieses erlaubt zun&auml;chst die Auswahl einer ersten Kombination aus Quell- und Zieltabelle. W&auml;hlen Sie als Zieltabelle den Eintrag <b>tblKategorien <\/b>aus. Das Prim&auml;rschl&uuml;sselfeld <b>KategorieID <\/b>erkennt das Tool selbstst&auml;ndig. Danach legen Sie die verkn&uuml;pfte Tabelle <b>tblKategorien1 <\/b>als Quelltabelle fest &#8211; auch hier wird der Prim&auml;rschl&uuml;ssel automatisch ausgew&auml;hlt.<\/p>\n<p>Das Ergebnis k&ouml;nnen Sie in Bild 1 begutachten: Der Assistent zeigt gleich die gemeinsamen Felder der beiden Tabellen in zwei Listenfeldern an. Warum nur gemeinsame Felder Nun: Wie oben beschrieben, sollten Sie die zu importierenden Daten m&ouml;glichst in der gleichen Form anbieten, wie diese in der Zieldatenbank vorliegen. Das hei&szlig;t, dass Sie gegebenenfalls eine Abfrage auf Basis der Quelltabelle verwenden, um deren Felder entsprechend denen der Zieltabelle &#8222;umzubiegen&#8220;.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic001.png\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Auswahl einer ersten Zuordnung von Tabellen und Feldern f&uuml;r das Zusammenf&uuml;hren von Daten<\/span><\/b><\/p>\n<p>Nat&uuml;rlich k&ouml;nnte man den Assistenten auch so programmieren, dass er die Zuteilung eines jeden Feldes der Quelltabelle zur Zieltabelle erlaubt, aber dadurch w&uuml;rde die &Uuml;bersicht doch arg leiden.<\/p>\n<p><b>Ein erster Import<\/b><\/p>\n<p>Auch wenn es sich bisher nur um die Kategorien-Tabelle handelt, f&uuml;hren wir nun einen ersten Testimport durch.<\/p>\n<p>Sie k&ouml;nnten nun bereits auf die Schaltfl&auml;che <b>Abgleich starten <\/b>klicken, dies w&uuml;rde jedoch nur eine Meldung hervorbringen, dass noch keine Felder f&uuml;r den Abgleich ausgew&auml;hlt wurden.<\/p>\n<p>Dazu gibt es zwei Listenfelder mit unterschiedlichem Zweck (s. Bild 2):<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic003.png\" alt=\"pic003.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: Abgleichen zweier Datens&auml;tze<\/span><\/b><\/p>\n<ul>\n<li class=\"aufz-hlung\">Das obere Listenfeld mit der Beschriftung <b>Felder f&uuml;r Vergleich <\/b>dient der Auswahl der Felder, nach deren Inhalten die Daten der Quell- und der Zieltabelle verglichen werden sollen. Im Falle der Kategorien-Tabelle sollten Sie beispielsweise das Feld <b>Kategoriename <\/b>markieren, damit eine Kategorie nicht zweimal in der Zieltabelle vorkommt.<\/li>\n<li class=\"aufz-hlung\">Das untere Listenfeld mit der Beschriftung <b>Felder f&uuml;r Abgleich <\/b>liefert die Felder, deren Werte von der Quell- in die Zieltabelle &uuml;bertragen werden sollen.<\/li>\n<\/ul>\n<p>Beide Listenfelder zeigen ohnehin nur die Feldnamen an, die in Quell- und Zieltabelle gleicherma&szlig;en vorkommen. Dar&uuml;ber hinaus k&ouml;nnen Sie auch hier noch Einschr&auml;nkungen bez&uuml;glich der zu importierenden Daten festlegen.<\/p>\n<p>Nach dem Ausw&auml;hlen der Daten erfolgt der Abgleich. Im Falle der Tabelle <b>tblKategorien <\/b>der Beispieldatenbanken gibt es in jeder Datenbank einen Datensatz, dessen Kategoriename <b>Getr&auml;nke <\/b>lautet. Der Assistent erkennt dies und &ouml;ffnet ein weiteres Formular, mit dem Sie die beiden Datens&auml;tze detailliert abgleichen k&ouml;nnen (s. Bild 3).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic002.png\" alt=\"pic002.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Ausw&auml;hlen der Felder f&uuml;r den Import der Daten der Tabelle tblKategorien1 in die Tabelle tblKategorien<\/span><\/b><\/p>\n<p>Dort k&ouml;nnen Sie nun f&uuml;r jedes Feld festlegen, ob der Inhalt aus der Zieltabelle oder der Quelltabelle &uuml;bernommen werden soll. In diesem Fall w&uuml;rden zwei Werte aus dem Datensatz der Zieltabelle und einer aus der Quelltabelle &uuml;bernommen. Mit einem Klick auf die Schaltfl&auml;che <b>OK <\/b>beenden Sie den Abgleich dieser beiden Datens&auml;tze.<\/p>\n<p>Nachdem alle abzugleichenden Datens&auml;tze der Kategorien-Tabelle abgearbeitet wurden, zeigt das Tool eine Meldung mit der Bestandsaufnahme an (s. Bild 4).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic004.png\" alt=\"pic004.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4: R&uuml;ckfrage, ob die &auml;nderungen durchgef&uuml;hrt werden sollen<\/span><\/b><\/p>\n<p>Zwei Datens&auml;tze werden hinzugef&uuml;gt, einer ge&auml;ndert &#8211; aber erst, wenn Sie mit einem Klick auf <b>Ja <\/b>den Abgleich endg&uuml;ltig durchf&uuml;hren. Das Tool f&uuml;hrt n&auml;mlich den kompletten Abgleich im Rahmen einer Transaktion durch, die beim Anklicken der Schaltfl&auml;che <b>Nein <\/b>dieser Meldung komplett verworfen wird.<\/p>\n<p>Was ist passiert Das Tool hat zwei Datens&auml;tze der Tabelle <b>tblKategorien1 <\/b>in die Tabelle <b>tblKategorien <\/b>importiert und einen bestehenden Datensatz ge&auml;ndert (s. Bild 5).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic005.png\" alt=\"pic005.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5: Die Kategorien-Tabelle mit neuen und ge&auml;nderten Datens&auml;tzen<\/span><\/b><\/p>\n<p>Und auch die Tabelle <b>tblPKAltUndNeu<\/b> hat einige neue Datens&auml;tze erhalten (s. Bild 6). Dies ist bereits ein Schritt, der beim Import weiterer Tabellen von gro&szlig;em Nutzen sein wird. Wenn Sie zum Beispiel Datens&auml;tze der Tabelle <b>tblArtikel1<\/b>, also der verkn&uuml;pften Quelltabelle, importieren m&ouml;chten, enthalten diese Fremdschl&uuml;sselfelder etwa mit Verweisen auf die Datens&auml;tze der Kategorien-Tabelle der Quelldatenbank. Sie konnten nun bereits beobachten, dass sich die Prim&auml;rschl&uuml;sselfelder der Kategorien beim Importieren beziehungsweise Zusammenf&uuml;hren ge&auml;ndert haben. Wenn Sie nun Datens&auml;tze aus der Artikeltabelle in die Zieldatenbank kopieren, m&uuml;ssen Sie nat&uuml;rlich auch die Werte der Fremdschl&uuml;sselfelder der betroffenen Datens&auml;tze anpassen. Und genau dazu speichert die Tabelle <b>tblPKAltUndNeu <\/b>die Prim&auml;rschl&uuml;sselwerte der Datens&auml;tze in der Quell- wie auch in der Zieltabelle.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic006.png\" alt=\"pic006.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6: Prim&auml;rschl&uuml;sselinformationen in der Tabelle tblPKAltUndNeu<\/span><\/b><\/p>\n<p>Im n&auml;chsten Schritt f&uuml;gen wir weitere Tabellen zum Abgleich hinzu. Wenn Sie diesen mit einer jungfr&auml;ulichen S&uuml;dsturm-Datenbank durchf&uuml;hren m&ouml;chten, k&ouml;nnen Sie die L&ouml;sung aus dem Beitrag <b>Tabellen und Beziehungen kopieren <\/b>(<b>www.access-im-unternehmen.de\/804<\/b>) nutzen.<\/p>\n<p>Diese L&ouml;sung erlaubt es, alle (oder auch nur einige) Tabellen der aktuellen Datenbank in eine andere oder eine neue Datenbank zu exportieren und diese sp&auml;ter wiederherzustellen. Gerade wenn Sie die Zusammenf&uuml;hrung der Daten zweier Datenbanken wie einem Tool wie hier beschrieben planen, werden Sie oft gern einen Schritt zur&uuml;ckgehen wollen, um einen Parameter zu &auml;ndern, etwas zu pr&uuml;fen et cetera.<\/p>\n<p><b>Weitere Tabellen zum Abgleich hinzuf&uuml;gen<\/b><\/p>\n<p>Um eine weitere Tabelle wie etwa <b>tblLieferanten <\/b>zum Abgleich hinzuzuf&uuml;gen, klicken Sie auf die Schaltfl&auml;che <b>Neu <\/b>und w&auml;hlen dann unten Ziel- und Quelltabelle sowie die betroffenen Felder aus.<\/p>\n<p>Au&szlig;erdem f&uuml;gen Sie noch die Tabelle <b>tblArtikel <\/b>zum Import hinzu. Ab hier wird die Reihenfolge der Eintr&auml;ge im Listenfeld interessant: Wenn Sie beispielsweise erst die Kategorien importieren und dann versuchen, die Artikel vor den Lieferanten einzulesen, liefert das Tool die Meldung aus Bild 7.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic007.png\" alt=\"pic007.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7: Die Tabellen k&ouml;nnen nicht in dieser Reihenfolge importiert werden.<\/span><\/b><\/p>\n<p>Kein Grund zur Panik: Die Anwendung hat schlicht erkannt, dass die Tabelle <b>tblArtikel <\/b>ein Fremdschl&uuml;sselfeld besitzt, das mit der Tabelle <b>tblLieferanten <\/b>verkn&uuml;pft ist. Und dann m&ouml;chte sie doch zun&auml;chst die Lieferanten einlesen, damit die Artikel anschlie&szlig;end ordnungsgem&auml;&szlig; mit den jeweiligen Lieferanten verkn&uuml;pft werden k&ouml;nnen.<\/p>\n<p>Die Reihenfolge &auml;ndern Sie ganz einfach, indem Sie den zu verschiebenden Eintrag des Listenfeldes markieren und auf eine der Schaltfl&auml;chen <b>Nach oben <\/b>oder <b>Nach unten <\/b>klicken (die zum Sortieren der Reihenfolge stellen wir &uuml;brigens im Beitrag <b>Reihenfolge mit Klasse <\/b>vor, zu finden unter <b>www.access-im-unternehmen.de\/812<\/b>).<\/p>\n<p>Nachdem Sie die zu importierenden Daten in die richtige Reihenfolge gebracht haben, klicken Sie wiederum auf <b>Abgleich starten<\/b>.<\/p>\n<p>Das Abgleich-Fenster erscheint einige Male, um Datens&auml;tze anzuzeigen, deren Vergleichskriterien in beiden Datens&auml;tzen gleich sind. Nach dem manuellen Abgleich dieser Datens&auml;tze zeigt das Tool wiederum eine Bestandsaufnahme, die Sie abnicken k&ouml;nnen &#8211; oder Sie verwerfen den kompletten Vorgang (s. Bild 8).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic008.png\" alt=\"pic008.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8: Das Einlesen von Daten aus drei Tabellen wird ordnungsgem&auml;&szlig; protokolliert.<\/span><\/b><\/p>\n<p>Auch ein Blick in die Tabelle <b>tblPKAltUndNeu <\/b>lohnt sich: Dort finden Sie nun bereits einige Datens&auml;tze, die sich auf Daten aus allen drei am Abgleich beteiligten Tabellen beziehen (s. Bild 9).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic009.png\" alt=\"pic009.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9: Beim Abgleich aufgenommene Daten f&uuml;r die Ermittlung der neuen Fremdschl&uuml;sselwerte<\/span><\/b><\/p>\n<p><b>Technische Details<\/b><\/p>\n<p>Wenn Sie tiefer in die Programmierung dieser L&ouml;sung einsteigen m&ouml;chten, bieten wir Ihnen hier noch eine kurze Beschreibung der wichtigsten Routinen der L&ouml;sung. Eine komplette Beschreibung w&uuml;rde den Rahmen sprengen, daher verweisen wir auf den in der Beispieldatenbank enthaltenen Quellcode.<\/p>\n<p>Zun&auml;chst noch einige Verweise:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Die Technik zum einfachen Anpassen der Reihenfolge der Listeneintr&auml;ge befindet sich im Klassenmodul <b>clsOrder<\/b>, das im oben bereits erw&auml;hnten Beitrag genau beschrieben wird.<\/li>\n<li class=\"aufz-hlung\">Grundlagen zum Abgleich von Daten finden Sie im Beitrag <b>Daten zusammenf&uuml;hren <\/b>(<b>www.access-im-unternehmen.de\/803<\/b>).<\/li>\n<li class=\"aufz-hlung\">Das Formular zur Gegen&uuml;berstellung zweier Datens&auml;tze wird im Beitrag <b>Daten zusammenf&uuml;hren per Formular <\/b>(<b>www.access-im-unternehmen.de\/805<\/b>) genauer erl&auml;utert.<\/li>\n<li class=\"aufz-hlung\">Der Beitrag <b>Tabellen und Beziehungen kopieren <\/b>(<b>www.access-im-unternehmen.de\/804<\/b>) liefert eine einfache L&ouml;sung, mit der Sie die Tabellen der Zieldatenbank vor dem Import sichern k&ouml;nnen. Sollte etwas schiefgehen, stellen Sie die Daten sp&auml;ter auf Basis der gesicherten Daten wieder her.<\/li>\n<\/ul>\n<p><b>Ablauf des Imports<\/b><\/p>\n<p>Klickt der Benutzer auf die Schaltfl&auml;che <b>Abgleich starten<\/b>, wird zun&auml;chst eine Transaktion gestartet, in deren Kontext alle Daten&auml;nderungen stattfinden. Damit lassen wir offen, ob die Daten nach Fertigstellung tats&auml;chlich ge&auml;ndert werden oder ob wir die &auml;nderungen verwerfen.<\/p>\n<p>Anschlie&szlig;end durchl&auml;uft die Prozedur <b>cmdAbgleichStarten_Click <\/b>alle Datens&auml;tze, die Sie &uuml;ber das Listenfeld der abzugleichenden Tabellen angelegt haben, und ruft f&uuml;r jeden die Prozedur <b>TabelleAbgleichen <\/b>auf.<\/p>\n<p>Die abzugleichenden Tabellen befinden sich &uuml;brigens samt aller notwendigen Informationen in der Tabelle <b>tblAbgleiche<\/b> &#8211; unter anderem mit semikolon-separierten Listen der zu vergleichenden und der abzugleichenden Felder. Diese Tabelle wird jeweils beim Aus- und Abw&auml;hlen von Feldern in den unteren beiden Listenfeldern des Anwendungsformulars aktualisiert und liefert ihrerseits die Daten f&uuml;r das Markieren der Vergleichs- und Abgleichfelder (s. Bild 10).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2011_06\/DatenmergeAssistent-web-images\/pic010.png\" alt=\"pic010.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10: Daten f&uuml;r den Abgleich<\/span><\/b><\/p>\n<p>Die Prozedur <b>TabelleAbgleichen <\/b>erstellt in einem komplizierten Vorgang eine Abfrage, welche die Daten des zu importierenden Datensatzes enth&auml;lt sowie gegebenenfalls die ID eines Datensatzes der Zieltabelle, der gem&auml;&szlig; den angegebenen Vergleichskriterien mit dem zu importierenden Datensatz &uuml;bereinstimmt. Liegt ein solcher Datensatz vor, wird das Formular f&uuml;r die manuelle Zusammenf&uuml;hrung des alten und des neuen Datensatzes ge&ouml;ffnet. Falls nicht, wird der neue Datensatz einfach in die Zieltabelle importiert.<\/p>\n<p>In jedem Falle legt die Prozedur einen neuen Eintrag in der Tabelle <b>tblPKAltUndNeu <\/b>an, damit sp&auml;ter eventuell verkn&uuml;pfte Datens&auml;tze mit den Prim&auml;rschl&uuml;sseldaten des neuen Datensatzes gef&uuml;ttert werden k&ouml;nnen.<\/p>\n<p>Wurde das Formular f&uuml;r den manuellen Abgleich ge&ouml;ffnet, gibt es zwei Varianten: Der Benutzer w&auml;hlt individuell Feldwerte beider Datens&auml;tze aus und klickt auf <b>OK <\/b>oder er klickt auf <b>&Uuml;berspringen<\/b>.<\/p>\n<p>Im ersten Fall wird anschlie&szlig;end die Prozedur <b>AbgleichenVorhanden <\/b>aufgerufen, welche den bestehenden Datensatz gem&auml;&szlig; den im Formular ausgew&auml;hlten Feldwerten &auml;ndert.<\/p>\n<p>Im zweiten Fall bleibt der Zieldatensatz unver&auml;ndert. In beiden F&auml;llen werden der alte und der neue Prim&auml;rschl&uuml;sselwert in die Tabelle <b>tblPKAltUndNeu <\/b>eingetragen.<\/p>\n<p>Der Benutzer kann jedoch auch entscheiden, dass der zu importierende Datensatz nur zuf&auml;llig auf einen bestehenden Datensatz passt (etwa, weil <b>Vorname <\/b>und <b>Nachname <\/b>die Werte <b>Michael <\/b>und <b>M&uuml;ller <\/b>aufweisen, was ja des &Ouml;fteren vorkommt). Dann wird der Datensatz einfach als neuer Datensatz angelegt.<\/p>\n<p>Wenn neue Datens&auml;tze angelegt wurden, erh&ouml;ht die Prozedur <b>TabelleAbgleichen <\/b>auch die Z&auml;hlerfelder in der Tabelle <b>tblAbgleiche<\/b>, die sp&auml;ter in der Meldung nach Abschluss des Abgleichs angezeigt wird.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Mit der hier vorgestellten L&ouml;sung k&ouml;nnen Sie den Abgleich von Datenbanken, deren Datenmodell &uuml;bereinstimmt oder zumindest durch den Einsatz von Abfragen angepasst werden kann, einfach abgleichen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>aiuMerge.mda<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{15D4573F-CB4D-478B-BEB2-B7ACAB661BCD}\/aiu_810.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Haben Sie auch Kunden, die Ihre Daten in mehreren Datenbanken und\/oder Tabellen halten und diese gern zusammenf&uuml;hren m&ouml;chten Oder kommt das vielleicht sogar bei Ihnen selbst vor Das ist kein Grund zum Sch&auml;men: Auch dem Autor dieser Zeilen passiert so etwas. Das ist aber nicht schlimm, wenn man wei&szlig;, wie man die Daten zuverl&auml;ssig in einer einzigen Datenbankanwendung zusammenf&uuml;hrt. Im konkreten Fall geht es um zwei Kundendatenbanken f&uuml;r verschiedene Produkte, die vereinigt werden sollten.<\/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":[662011,66062011,44000027],"tags":[],"class_list":["post-55000810","post","type-post","status-publish","format-standard","hentry","category-662011","category-66062011","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Der Merge-Assistent - 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\/Der_MergeAssistent\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Der Merge-Assistent\" \/>\n<meta property=\"og:description\" content=\"Haben Sie auch Kunden, die Ihre Daten in mehreren Datenbanken und\/oder Tabellen halten und diese gern zusammenf&uuml;hren m&ouml;chten Oder kommt das vielleicht sogar bei Ihnen selbst vor Das ist kein Grund zum Sch&auml;men: Auch dem Autor dieser Zeilen passiert so etwas. Das ist aber nicht schlimm, wenn man wei&szlig;, wie man die Daten zuverl&auml;ssig in einer einzigen Datenbankanwendung zusammenf&uuml;hrt. Im konkreten Fall geht es um zwei Kundendatenbanken f&uuml;r verschiedene Produkte, die vereinigt werden sollten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T21:59:33+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/ea3444fca7ec4038bf19aa980d2f121f\" \/>\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=\"18\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Der Merge-Assistent\",\"datePublished\":\"2020-05-22T21:59:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/\"},\"wordCount\":3667,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/ea3444fca7ec4038bf19aa980d2f121f\",\"articleSection\":[\"2011\",\"6\\\/2011\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/\",\"name\":\"Der Merge-Assistent - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/ea3444fca7ec4038bf19aa980d2f121f\",\"datePublished\":\"2020-05-22T21:59:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/ea3444fca7ec4038bf19aa980d2f121f\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/ea3444fca7ec4038bf19aa980d2f121f\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_MergeAssistent\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Der Merge-Assistent\"}]},{\"@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":"Der Merge-Assistent - 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\/Der_MergeAssistent\/","og_locale":"de_DE","og_type":"article","og_title":"Der Merge-Assistent","og_description":"Haben Sie auch Kunden, die Ihre Daten in mehreren Datenbanken und\/oder Tabellen halten und diese gern zusammenf&uuml;hren m&ouml;chten Oder kommt das vielleicht sogar bei Ihnen selbst vor Das ist kein Grund zum Sch&auml;men: Auch dem Autor dieser Zeilen passiert so etwas. Das ist aber nicht schlimm, wenn man wei&szlig;, wie man die Daten zuverl&auml;ssig in einer einzigen Datenbankanwendung zusammenf&uuml;hrt. Im konkreten Fall geht es um zwei Kundendatenbanken f&uuml;r verschiedene Produkte, die vereinigt werden sollten.","og_url":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T21:59:33+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/ea3444fca7ec4038bf19aa980d2f121f","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"18\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Der Merge-Assistent","datePublished":"2020-05-22T21:59:33+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/"},"wordCount":3667,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/ea3444fca7ec4038bf19aa980d2f121f","articleSection":["2011","6\/2011","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/","url":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/","name":"Der Merge-Assistent - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/ea3444fca7ec4038bf19aa980d2f121f","datePublished":"2020-05-22T21:59:33+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/ea3444fca7ec4038bf19aa980d2f121f","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/ea3444fca7ec4038bf19aa980d2f121f"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Der_MergeAssistent\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Der Merge-Assistent"}]},{"@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\/55000810","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=55000810"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000810\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}