{"id":55000214,"date":"2004-04-01T00:00:00","date_gmt":"2020-05-06T15:17:39","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=214"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Kooperation_von_Datenbanken","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/","title":{"rendered":"Kooperation von Datenbanken"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg06.met.vgwort.de\/na\/ce262e3e737946d0b57da2d3effa62a2\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Wer will denn schon mehrere S&uuml;ppchen kochen, wenn er doch eines servieren kann, das allen Beteiligten schmeckt. Letzteres ist leider in den meisten Unternehmen nicht m&ouml;glich, da es in vielen Bereichen keine konsistenten Datenbest&auml;nde gibt. Das f&auml;ngt damit an, dass jeder Mitarbeiter sein pers&ouml;nliches Adressbuch in Outlook pflegt, anstatt auf die Groupware-Funktionen dieser Software zuzugreifen, die allen Mitarbeitern einen einheitlichen, aktuellen Adressbestand zur Verf&uuml;gung stellt. Da das nur der Anfang f&uuml;r eine effizientere Organisation ist und Sie es besser machen sollen, lernen Sie im vorliegenden Beitrag, wie Sie die Daten unterschiedlicher Datenbanken geschickt verkn&uuml;pfen.<\/b><\/p>\n<p>Die Hauptbeispieldatenbank des vorliegenden Beitrags ist die Mitarbeiterverwaltung, die bereits in zwei Teilen in den Ausgaben 7\/2001 und 1\/2002 vorgestellt wurde. In den beiden Beitr&auml;gen wurde anhand der Mitarbeiterverwaltung die Erstellung einer Datenbankanwendung auf Basis der MSDE, einer abgespeckten Microsoft SQL Server-Variante, erl&auml;utert. F&uuml;r diesen Beitrag finden Sie auf der Heft-CD eine reine Access-Version dieser Datenbank, von der damit auch Access 97-Anwender und Anwender von Access 2000 und h&ouml;her, die keine MSDE und keinen SQL Server verwenden wollen, profitieren k&ouml;nnen.<\/p>\n<p>Es wird noch eine weitere Beispieldatenbank hinzugezogen: Die Besprechungsplanung aus der vorliegenden Ausgabe von Access im Unternehmen. Der vorliegende Beitrag beschreibt verschiedene M&ouml;glichkeiten, Daten und Objekte zweier Datenbanken in der jeweils anderen Datenbank zu verwenden.<\/p>\n<p>Die einfachste Art der Zusammenarbeit zweier Datenbanken erfolgt durch die Bereitstellung der Daten der einen Datenbank in der anderen Datenbank. Die beiden Datenbankanwendungen Mitarbeiterverwaltung und Besprechungsplanung ben&ouml;tigen beide die Daten der Mitarbeiter. W&auml;hrend sich die Mitarbeiterverwaltung sogar haupts&auml;chlich mit den Mitarbeitern besch&auml;ftigt, sind die Mitarbeiter in der Besprechungsplanung nur ein Teil der eigentlich behandelten Objekte, n&auml;mlich der Besprechungen.<\/p>\n<p>Daher sollen die Mitarbeiter fortan in der Mitarbeiterverwaltung gepflegt werden. Die Besprechungsplanung soll auf die in der Mitarbeiterverwaltung enthaltenen Mitarbeiterdaten zugreifen.<\/p>\n<h2>Aktueller Zustand<\/h2>\n<p>Wenn Sie die beiden Datenbanken und speziell die dort enthaltenen Tabellen zur Speicherung der Mitarbeiterdaten betrachten, f&auml;llt auf, dass die Daten in der Mitarbeiterverwaltung erwartungsgem&auml;&szlig; wesentlich umfangreicher sind.<\/p>\n<p>Die Besprechungsplanung enth&auml;lt in der Tabelle tblMitarbeiter lediglich ein Indexfeld sowie ein Feld, in dem Vor- und Nachname des Mitarbeiters gespeichert werden.<\/p>\n<p>Im &#8222;wirklichen Leben&#8220; werden Sie kaum ein Unternehmen finden, in dem von Anfang an alle Anwendungen auf konsistente und einfach gehaltene Daten zugreifen. Das ist auch nicht realistisch, denn entweder m&uuml;sste es dazu eine Rundumsoftware f&uuml;r alle Belange des Unternehmens geben oder das Unternehmen m&uuml;sste eine solche Software erstellen lassen, was zweifelsfrei sehr teuer w&uuml;rde.<\/p>\n<pre>Public Sub MitarbeiterKopieren()\r\n    Dim db As DAO.Database\r\n    Dim rstMitarbeiterAlt As DAO.Recordset\r\n    Dim rstMitarbeiterNeu As DAO.Recordset\r\n    Dim strName As String\r\n    Dim strVorname As String\r\n    Dim strNachname As String\r\n    Dim posKomma As Integer\r\n    Set db = CurrentDb\r\n    Set rstMitarbeiterAlt = db.OpenRecordset(\"tblMitarbeiterAlt\", dbOpenDynaset)\r\n    Set rstMitarbeiterNeu = db.OpenRecordset(\"tblMitarbeiterVerknuepft\", _        dbOpenDynaset)\r\n    Do While Not rstMitarbeiterAlt.EOF\r\n        strName = rstMitarbeiterAlt!Mitarbeitername\r\n        posKomma = InStr(1, strName, \",\")\r\n        strVorname = Trim(Mid(strName, 1, posKomma - 1))\r\n        strNachname = Trim(Mid(strName, posKomma + 1))\r\n        rstMitarbeiterNeu.FindFirst \"[Nachname] = ''\" & strNachname _            & \"'' AND [Vorname] = ''\" & strVorname & \"''\"\r\n        If rstMitarbeiterNeu.NoMatch Then\r\n            rstMitarbeiterNeu.AddNew\r\n            rstMitarbeiterNeu!Vorname = strVorname\r\n            rstMitarbeiterNeu!Nachname = strNachname\r\n            rstMitarbeiterNeu.Update\r\n        End If\r\n        rstMitarbeiterAlt.MoveNext\r\n    Loop\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p>Daher ist wie im vorliegenden Fall davon auszugehen, dass mehrere Anwendungen prinzipiell die gleichen Daten speichern und, wenn &uuml;berhaupt m&ouml;glich, einander angepasst werden m&uuml;ssen. <\/p>\n<p>Im vorliegenden Fall ist die Besprechungsplanung so ausgelegt, dass die Daten zu den einzelnen Mitarbeitern aus einem einzigen Feld namens Mitarbeitername bestehen, w&auml;hrend in der Tabelle tblMitarbeiter der Mitarbeiterverwaltung die beiden Felder Vorname und Nachname getrennt gef&uuml;hrt werden. Immerhin hei&szlig;en die Prim&auml;rindexfelder der beiden Tabellen beide MitarbeiterID.<\/p>\n<h2>Gew&uuml;nschter Zustand<\/h2>\n<p>Ziel der hier beschriebenen Vorgehensweise ist das Schaffen eines einzigen Datentopfes mit Mitarbeiterdaten, auf den beide Anwendungen zugreifen k&ouml;nnen.<\/p>\n<p>Am leichtesten geht das, indem Sie einfach die eine Anwendung beibehalten und die andere Anwendung mit den entsprechenden Daten verkn&uuml;pfen. Im vorliegenden Fall bedeutet das ein Belassen der Mitarbeitertabelle in der Mitarbeiterverwaltung und die Anpassung der Besprechungsplanung.<\/p>\n<h2>Synchronisation derMitarbeitertabellen<\/h2>\n<p>Bevor die Mitarbeiterdaten nur noch in einer Datenbank beziehungsweise einer Tabelle gehalten werden, m&uuml;ssen die Daten aus beiden Tabellen zusammengefasst werden.<\/p>\n<p>Dabei wird davon ausgegangen, dass Mitarbeiter, die in der Besprechungsplanung, aber nicht in der Mitarbeiterverwaltung gef&uuml;hrt werden, zur Tabelle tblMitarbeiter der Mitarbeiterverwaltung hinzugef&uuml;gt werden.<\/p>\n<p>Diese Aufgabe &uuml;bernimmt im vorliegenden Fall die Prozedur MitarbeiterKopieren aus Quellcode 1.<\/p>\n<h3>Hinweis<\/h3>\n<p>Diese Prozedur ist ein Beispiel f&uuml;r die Zusammenfassung der Datens&auml;tze zweier Tabellen in eine der beiden Tabellen. Wann immer Sie einen &auml;hnlichen Vorgang durchf&uuml;hren wollen, k&ouml;nnen Sie das mit einer Anf&uuml;geabfrage oder wie im vorliegenden Fall mit einer geeigneten Prozedur erledigen. Sie werden aber aufgrund der von Fall zu Fall unterschiedlichen Gegebenheiten jeweils eine neue Vorgehensweise daf&uuml;r entwickeln m&uuml;ssen. <\/p>\n<p>Die Tabelle durchl&auml;uft alle Datens&auml;tze der Mitarbeitertabelle der Besprechungsplanung und &uuml;berpr&uuml;ft, ob in der entsprechenden Tabelle der Mitarbeiterverwaltung bereits ein Datensatz f&uuml;r den aktuellen Mitarbeiter vorhanden ist. Dabei wird der aus den Bestandteilen Nachname, Komma und Vorname bestehende Inhalt des Feldes Mitarbeitername in Nachname und Vorname aufgeteilt und als Vergleichskriterium verwendet. Wenn noch kein Mitarbeiter gleichen Namens vorhanden ist, wird dieser neu angelegt.<\/p>\n<h2>Anpassen einer Anwendung an Fremdtabellen<\/h2>\n<p>Abfragen, Formulare, Berichte und vor allem VBA-Code nehmen in den meisten F&auml;llen Bezug auf Tabellen und deren Felder. Naiverweise k&ouml;nnte man nun einen Riesenberg Arbeit vermuten, um all die Datenbankobjekte und Codezeilen nach Bez&uuml;gen auf die Tabelle tblMitarbeiter und die darin enthaltenen Felder zu durchsuchen und diese anzupassen.<\/p>\n<p>Es geht aber viel leichter, und zwar in wenigen Schritten. Dabei hilft die Tatsache, dass Abfragen in 98% aller F&auml;lle genau wie Tabellen angesprochen werden k&ouml;nnen. Nachfolgend werden folgende Schritte im Detail erl&auml;utert:<\/p>\n<li>L&ouml;schen der Tabelle tblMitarbeiter aus der Besprechungsplanung<\/li>\n<li>Erstellen einer Verkn&uuml;pfung zur Tabelle tblMitarbeiter der Mitarbeiterverwaltung und &auml;ndern des Namens dieser Tabelle, beispielsweise in tblMitarbeiterVerknuepft<\/li>\n<li>Erstellen einer Abfrage namens tblMitarbeiter, die den Inhalt der verkn&uuml;pften Tabelle so mappt, dass der Aufbau der Abfrage dem Aufbau der gel&ouml;schten Tabelle entspricht<\/li>\n<h2>L&ouml;schen der Mitarbeitertabelle aus der Besprechungsverwaltung<\/h2>\n<p>Bevor Sie die Mitarbeitertabelle der Besprechungsverwaltung l&ouml;schen k&ouml;nnen, m&uuml;ssen Sie nat&uuml;rlich &uuml;berpr&uuml;fen, ob die Mitarbeiterverwaltung den gleichen Stand hat oder ob die Besprechungsplanung gegebenenfalls schon Mitarbeiter enth&auml;lt, die noch nicht in der Mitarbeiterverwaltung gespeichert sind. Das sollte zwar nicht sein, aber es w&auml;re einer der Gr&uuml;nde, um Daten nur an einem Ort zu pflegen.<\/p>\n<p>Nachdem Sie die Daten verglichen haben, k&ouml;nnen Sie die Tabelle tblMitarbeiter aus der Besprechungsplanung l&ouml;schen. Wenn Sie nicht sicher sind, ob Sie die Tabelle nicht doch noch einmal ben&ouml;tigen, &auml;ndern Sie einfach den Namen in tblMitarbeiterAlt um.<\/p>\n<h2>Verkn&uuml;pfen der neuenMitarbeitertabelle<\/h2>\n<p><!--30percent--><\/p>\n<p>Nun k&ouml;nnen Sie die Besprechungsplanung mit der Tabelle tblMitarbeiter der Mitarbeiterverwaltung verkn&uuml;pfen. Gehen Sie dabei folgenderma&szlig;en vor:<\/p>\n<li>F&uuml;hren Sie den Eintrag Datei\/Externe Daten\/Tabellen verkn&uuml;pfen&#8230;  aus der Men&uuml;leiste aus.<\/li>\n<li>W&auml;hlen Sie im Dialog Verkn&uuml;pfen die Mitarbeiterverwaltung aus.<\/li>\n<li>W&auml;hlen Sie im Dialog Tabellen verkn&uuml;pfen die Tabelle tblMitarbeiter aus (siehe Bild 1).<\/li>\n<li>Die Tabelle erscheint nun mit einem entsprechenden Symbol im Datenbankfenster. &auml;ndern Sie den Tabellennamen dort in tblMitarbeiterVerknuepft um (siehe Bild 2). (<\/li>\n<p><IMG height=\"241\" src=\"..\/fileadmin\/_temp_\/{35920795-BCEA-41BE-B130-2F403E4500F3}\/pic001.png\" width=\"488\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Auswahl von zu verkn&uuml;pfenden Tabellen<\/span><\/b><\/p>\n<p><IMG height=\"316\" src=\"..\/fileadmin\/_temp_\/{35920795-BCEA-41BE-B130-2F403E4500F3}\/pic002.png\" width=\"489\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Verkn&uuml;pfte und umbenannte Tabelle<\/span><\/b><\/p>\n<p><IMG height=\"305\" src=\"..\/fileadmin\/_temp_\/{35920795-BCEA-41BE-B130-2F403E4500F3}\/pic003.png\" width=\"485\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Die Abfrage zur Simulation der Tabelle tblMitarbeiter<\/span><\/b><\/p>\n<p>Sie k&ouml;nnen nun bereits auf die Mitarbeiterdaten der Mitarbeiterverwaltung zugreifen. Leider befindet sich in der Tabelle tblMitarbeiterVerknuepft kein Feld namens Mitarbeitername, auf das Formulare und Berichte der Besprechungsplanung zugreifen k&ouml;nnen, aber Sie haben ja ohnehin bereits den Tabellennamen umge&auml;ndert.<\/p>\n<h2>Mappen der Tabellenfelder in einer Abfrage<\/h2>\n<p>Nun folgt der Schritt, in dem Sie sich die Tatsache zu Nutze machen, dass fast alle Zugriffe auf Abfragen wie Zugriffe auf Tabellen funktionieren.<\/p>\n<p>Dabei verwenden Sie eine Abfrage, die den gleichen Namen wie die zu ersetzende Tabelle tblMitarbeiter und auch die gleichen Felder enth&auml;lt. Wenn eine andere Abfrage, ein Formular, ein Bericht oder VBA-Code auf das Datenbankobjekt mit dem Namen tblMitarbeiter zugreift, macht es keinen Unterschied, ob es sich dabei um eine Tabelle oder um eine Abfrage handelt.<\/p>\n<li>Erstellen Sie eine neue Abfrage.<\/li>\n<li>F&uuml;gen Sie der Abfrage die Tabelle tblMitarbeiterVerknuepft hinzu.<\/li>\n<li>Ziehen Sie das Feld MitarbeiterID in das Entwurfsraster.<\/li>\n<li>Legen Sie ein weiteres Feld an, das den in Bild 3 gezeigten Inhalt hat.<\/li>\n<li>Speichern Sie die Abfrage unter dem Namen tblMitarbeiter. (<\/li>\n<p>Der Ausdruck Mitarbeitername: [Nachname] &#038; &#8222;, &#8220; &#038; [Vorname] dient dazu, die beiden Felder Nachname und Vorname der Tabelle tblMitarbeiter der Mitarbeiterverwaltung in ein Feld namens Mitarbeitername zu mappen.<\/p>\n<p>Damit haben Sie nun ein Datenbankobjekt, das genau den gleichen Namen und genau die gleichen Felder wie die urspr&uuml;nglich in der Besprechungsplanung verwendete Tabelle tblMitarbeiter hat, aber tats&auml;chlich die Daten der Tabelle tblMitarbeiter der Mitarbeiterverwaltung enth&auml;lt.<\/p>\n<p><IMG height=\"264\" src=\"..\/fileadmin\/_temp_\/{35920795-BCEA-41BE-B130-2F403E4500F3}\/pic004.png\" width=\"491\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Falsche oder fehlende Besprechungsteilnehmer durch unterschiedliche Schl&uuml;sselfelder<\/span><\/b><\/p>\n<h2>Probleme<\/h2>\n<p>Die Vorgehensweise w&auml;re zu leicht, wenn nicht noch einige Probleme auftauchen w&uuml;rden &#8211; zumindest, wenn in beiden Datenbanken bereits Mitarbeiterdaten vorhanden sind.<\/p>\n<p>Das erste Problem tritt zu Tage, wenn Sie die in der Besprechungsplanung enthaltenen Mitarbeiter in die Tabelle tblMitarbeiter der Mitarbeiterverwaltung &uuml;bertragen h&auml;tten, ohne deren MitarbeiterID beizubehalten oder die Mitarbeiter dort ohnehin gespeichert w&auml;ren, aber eine andere MitarbeiterID h&auml;tten.<\/p>\n<p>Offensichtlich wird das Problem, wenn Sie unter oben genannten Bedingungen eine Besprechung anzeigen und feststellen, dass der Besprechung pl&ouml;tzlich ganz andere Personen zugeordnet werden oder deren Platz ganz frei bleibt (siehe Bild 4). Es gibt auf den ersten Blick zwei nahe liegende L&ouml;sungsans&auml;tze:<\/p>\n<li>Anpassen der Werte f&uuml;r das Feld MitarbeiterID in der Tabelle tblMitarbeiter der Mitarbeiterverwaltung<\/li>\n<li>Anpassen aller Tabellen der Besprechungsplanung, die &uuml;ber ein Fremdschl&uuml;sselfeld auf das Feld MitarbeiterID der Tabelle tblMitarbeiter zugreifen<\/li>\n<p>Die erste M&ouml;glichkeit erweist sich sp&auml;testens dann als zu aufw&auml;ndig, wenn bereits mit der Tabelle tblMitarbeiter verkn&uuml;pfte Datens&auml;tze in weiteren Tabellen der Mitarbeiterverwaltung enthalten sind.<\/p>\n<p>Bleibt also die zweite M&ouml;glichkeit. Um die Inhalte der Fremdschl&uuml;sselfelder der Tabellen anzupassen, die mit Datens&auml;tzen der Tabelle tblMitarbeiter verkn&uuml;pft sind, m&uuml;ssen Sie eine entsprechende Prozedur erstellen. Die Prozedur soll zusammengefasst folgende Schritte durchf&uuml;hren:<\/p>\n<li>Durchlaufen der Datens&auml;tze der Tabelle tblMitarbeiterAlt der Besprechungsverwaltung<\/li>\n<li>&uuml;berpr&uuml;fen, unter welcher MitarbeiterID der Mitarbeiter des aktuellen Datensatzes in der Tabelle tblMitarbeiter der Mitarbeiterverwaltung gespeichert ist<\/li>\n<li>Anpassen der Fremdschl&uuml;sselfelder aller mit der Tabelle tblMitarbeiter verkn&uuml;pften Tabellen der Besprechungsplanung<\/li>\n<p>Der letzte Schritt bringt ein Problem mit sich: Wenn beispielsweise ein Mitarbeiter mit der MitarbeiterID 1 in der Besprechungsplanung gespeichert war, und in der Mitarbeitertabelle der Mitarbeiterverwaltung die MitarbeiterID 10 hat, muss ja f&uuml;r alle Eintr&auml;ge der verkn&uuml;pften Tabellen in der Besprechungsplanung die MitarbeiterID von 1 auf 10 ge&auml;ndert werden.<\/p>\n<p>Das funktioniert aber nicht, wenn die Besprechungsplanung vorher auch einen Mitarbeiter mit der MitarbeiterID 10 enthielt.<\/p>\n<p>Dann w&uuml;rde dieser Mitarbeiter nicht nur den Besprechungen zugeordnet sein, denen er auch zugeordnet sein soll, sondern auch noch denen des Mitarbeiters, der urspr&uuml;nglich die MitarbeiterID 1 hatte, und umgekehrt.<\/p>\n<pre>Public Sub FremdschluesselAnpassen()\r\n    Dim db As DAO.Database\r\n    Dim rstMitarbeiter As DAO.Recordset\r\n    Dim intNeueID As Integer\r\n    Dim strName As String\r\n    Dim strVorname As String\r\n    Dim strNachname As String\r\n    Dim posKomma As Integer\r\n    Set db = CurrentDb\r\n    Set rstMitarbeiter = db.OpenRecordset(\"tblMitarbeiterAlt\", dbOpenDynaset)\r\n    Do While Not rstMitarbeiter.EOF\r\n        strName = rstMitarbeiter!Mitarbeitername\r\n        posKomma = InStr(1, strName, \",\")\r\n        strVorname = Trim(Mid(strName, 1, posKomma - 1))\r\n        strNachname = Trim(Mid(strName, posKomma + 1))\r\n        intNeueID = DLookup(\"MitarbeiterID\", \"tblMitarbeiterVerknuepft\", _            \"[Nachname] = ''\" & strNachname & \"'' AND [Vorname] = ''\" & strVorname & \"''\")\r\n        db.Execute \"INSERT INTO tblBesprechungsteilnehmerTemp(BesprechungID, \" _            & \"MitarbeiterID, BesprechungsteilnehmerfunktionID) \" _            & \"SELECT BesprechungID, \" & intNeueID & \" AS MitarbeiterID, \" _            & \"BesprechungsteilnehmerfunktionID FROM tblBesprechungsteilnehmer \" _            & \"WHERE MitarbeiterID = \" & rstMitarbeiter!MitarbeiterID\r\n        rstMitarbeiter.MoveNext\r\n    Loop\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p>Um dennoch zum Ziel zu kommen, verwenden Sie eine tempor&auml;re Tabelle namens tblBesprechungsteilnehmerTemp.<\/p>\n<p>In diese werden alle Eintr&auml;ge der Tabelle tblBesprechungsteilnehmer mit angepasster MitarbeiterID &uuml;bertragen.<\/p>\n<p><IMG height=\"209\" src=\"..\/fileadmin\/_temp_\/{35920795-BCEA-41BE-B130-2F403E4500F3}\/pic005.png\" width=\"348\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Kopieren einer Tabelle<\/span><\/b><\/p>\n<p>Legen Sie zun&auml;chst die tempor&auml;re Tabelle an. Dazu kopieren Sie die Tabelle tblBesprechungsteilnehmer &uuml;ber den Eintrag Kopieren des Kontextmen&uuml;s in die Zwischenablage und f&uuml;gen sie mit dem Befehl Einf&uuml;gen wieder in das Datenbankfenster ein.<\/p>\n<p>Im nun erscheinenden Dialog Tabelle einf&uuml;gen als geben Sie den Namen tblBesprechungsteilnehmerTemp an und w&auml;hlen als Option Nur Struktur aus (siehe Bild 5).<\/p>\n<p>Anschlie&szlig;end verwenden Sie die Prozedur aus Quellcode 2, um die einzelnen Eintr&auml;ge der Tabelle tblBesprechungsteilnehmer in die Tabelle tblBesprechungsteilnehmerTemp zu kopieren und dabei gleichzeitig die Inhalte des Fremdschl&uuml;sselfeldes MitarbeiterID anzupassen.<\/p>\n<p>Nachdem Sie die Richtigkeit der Daten &uuml;berpr&uuml;ft haben, k&ouml;nnen Sie die Tabelle tblBesprechungsteilnehmer in tblBesprechungsteilnehmerAlt und die Tabelle tblBesprechungsteilnehmerTemp in tblBesprechungsteilnehmer umbenennen. Anschlie&szlig;end sollten alle Besprechungen wieder mit den richtigen Teilnehmern angezeigt werden.<\/p>\n<p><IMG height=\"358\" src=\"..\/fileadmin\/_temp_\/{35920795-BCEA-41BE-B130-2F403E4500F3}\/pic006.png\" width=\"467\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Verweis auf eine andere Datenbank<\/span><\/b><\/p>\n<p>Wenn Sie nun schon in der Besprechungsplanung auf die Mitarbeiterdaten aus der Mitarbeiterverwaltung zugreifen, w&auml;re es doch sch&ouml;n, wenn Sie auch direkt von der Besprechungsplanung aus neue Mitarbeiter anlegen oder deren Daten &auml;ndern k&ouml;nnten.<\/p>\n<h2>Importieren von Formularen aus anderen Anwendungen<\/h2>\n<p>Das ist eigentlich kein Problem &#8211; kopieren Sie das entsprechende Formular aus der Mitarbeiterverwaltung in die Besprechungsplanung und f&uuml;gen Sie dem Formular zum Anlegen von Besprechungen ein paar entsprechende Steuerelemente zum Aufrufen des Mitarbeiterformulars hinzu.<\/p>\n<p>Beim &ouml;ffnen des Formulars werden Sie schnell daran erinnert, dass Sie auch noch die dazugeh&ouml;renden Unterformulare importieren m&uuml;ssen. Und als N&auml;chstes macht sich das Fehlen der ben&ouml;tigten Datenherk&uuml;nfte bemerkbar, f&uuml;r die Sie ebenfalls noch Verkn&uuml;pfungen anlegen m&uuml;ssen.<\/p>\n<h3>Nachteile<\/h3>\n<p>Nachdem Sie alle ben&ouml;tigten Formulare kopiert und Verkn&uuml;pfungen zu den entsprechenden Tabellen und Abfragen hergestellt haben, funktioniert das Anlegen von Mitarbeitern.<\/p>\n<p>Allerdings haben Sie sich damit &auml;rger zugezogen, den Sie gerade auf anderer Ebene vermeiden wollen: Sie haben zwei Kopien des gleichen Formulars und m&uuml;ssen eventuell notwendige &auml;nderungen jedes Mal doppelt durchf&uuml;hren.<\/p>\n<h2>&#8222;Verkn&uuml;pfung&#8220; mit Formularen aus anderen Anwendungen<\/h2>\n<p>Auch hier haben Sie die M&ouml;glichkeit, eine Art Verkn&uuml;pfung zu erstellen. Das funktioniert nicht so direkt wie im Fall der Tabellen und ist ein wenig komplizierter.<\/p>\n<p>Um ein Formular einer anderen Datenbank in der aktuellen Datenbank aufzurufen, gehen Sie folgenderma&szlig;en vor:<\/p>\n<li>&ouml;ffnen Sie den VBA-Editor &#8211; beispielsweise, indem Sie im Datenbankfenster in das Register Module wechseln und anschlie&szlig;end aus der Men&uuml;leiste den Eintrag Ansicht\/Code ausw&auml;hlen.<\/li>\n<li>W&auml;hlen Sie aus der Men&uuml;leiste den Eintrag Extras\/Verweise aus.<\/li>\n<li>Klicken Sie im Dialog Verweise auf die Schaltfl&auml;che Durchsuchen und w&auml;hlen Sie dort die Mitarbeiterverwaltung aus. Vergessen Sie nicht, den Dateityp entsprechend einzustellen.<\/li>\n<li>Nach dem Festlegen des Verweises auf die Mitarbeiterverwaltung schlie&szlig;en Sie den Dialog Verweise (siehe Bild 6). (<\/li>\n<p><IMG height=\"301\" src=\"..\/fileadmin\/_temp_\/{35920795-BCEA-41BE-B130-2F403E4500F3}\/pic007.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Zugriff auf die Module mehrerer Datenbanken<\/span><\/b><\/p>\n<p>Im VBA-Editor finden Sie nun die Klassen- und Standardmodule der aktuellen und der verkn&uuml;pften Datenbank (siehe Bild 7). Leider ist das beispielsweise auf der Registerseite Formulare des Datenbankfensters nicht der Fall, sodass keine direkte Bearbeitung der Formulare der verkn&uuml;pften Datenbank m&ouml;glich ist.<\/p>\n<p>Aber da Formulare und Berichte ohnehin meist per VBA-Code ge&ouml;ffnet werden, macht das nicht viel aus. Sie k&ouml;nnen allerdings auch via VBA nicht direkt auf Datenbankobjekte zugreifen, wie folgendes Beispiel zeigt: Testen Sie einmal das &ouml;ffnen des Formulars zur Anzeige von Mitarbeiterdetails, indem Sie im Testfenster (zu &ouml;ffnen &uuml;ber die Tastenkombination Strg + g) die folgende Anweisung eingeben:<\/p>\n<pre>DoCmd.OpenForm \"frmMitarbeiterDetail\"<\/pre>\n<p>Gem&auml;&szlig; der nun erscheinenden Fehlermeldung ist eine alternative M&ouml;glichkeit zum &ouml;ffnen des Formulars erforderlich. Diese M&ouml;glichkeit ist das Anlegen einer &ouml;ffentlichen Funktion in einem Modul in der verkn&uuml;pften Datenbank, die den Befehl zum &ouml;ffnen des gew&uuml;nschten Formulars enth&auml;lt (s. Quellcode 3).<\/p>\n<p>Diese Funktion erwartet als Parameter die MitarbeiterID des Mitarbeiters, dessen Detaildaten das Formular anzeigen soll.<\/p>\n<p>Wenn Sie die folgende Anweisung im Testfenster absetzen, wird das Mitarbeiterformular in der Besprechungsplanung ge&ouml;ffnet:<\/p>\n<pre>frmMitarbeiterDetail_Open 1<\/pre>\n<p>Da der Benutzer der Besprechungsplanung vermutlich nicht mit dem Testfenster und dem Aufrufen von Funktionen per VBA vertraut ist, passen Sie nun noch das Formular zur Anzeige von Besprechungen so an, dass per Knopfdruck Mitarbeiterdaten eingesehen und bearbeitet sowie neue Mitarbeiter angelegt werden k&ouml;nnen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Beachten Sie, dass alle &auml;nderungen, die Sie am VBA-Code der Mitarbeiterverwaltung vornehmen, von dieser Datenbank aus durchgef&uuml;hrt werden m&uuml;ssen. &auml;nderungen, die Sie vom VBA-Fenster der Besprechungsplanung aus vornehmen, werden nicht gespeichert. <\/p>\n<p>Dazu ben&ouml;tigen Sie zun&auml;chst die beiden Funktionen in der Mitarbeiterverwaltung, die dem &ouml;ffnen des Formulars frmMitarbeiterDetail dienen &#8211; einmal zum Bearbeiten und einmal zum Neuanlegen eines Mitarbeiters (s. Quellcode 4). Zu deren Eingabe schlie&szlig;en Sie die Besprechungsverwaltung und &ouml;ffnen die Mitarbeiterverwaltung.<\/p>\n<p><IMG height=\"262\" src=\"..\/fileadmin\/_temp_\/{35920795-BCEA-41BE-B130-2F403E4500F3}\/pic008.png\" width=\"400\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Schaltfl&auml;chen zum Aufrufen der Mitarbeiterdetails<\/span><\/b><\/p>\n<p>Anschlie&szlig;end schlie&szlig;en Sie die Mitarbeiterverwaltung wieder und &ouml;ffnen erneut die Besprechungsplanung. Dort legen Sie im Formular frmBesprechungen zwei neue Schaltfl&auml;chen wie in Bild 8 an und versehen diese mit den Prozeduren aus Quellcode 5.<\/p>\n<p>Sie k&ouml;nnen nun vom Formular frmBesprechungen das Mitarbeiterformular aus der Mitarbeiterverwaltung aufrufen und damit die Daten der Mitarbeiter einsehen, anpassen und neue Mitarbeiter anlegen.<\/p>\n<pre>Public Function frmMitarbeiterDetail_Open(MitarbeiterID As Integer)\r\n    DoCmd.OpenForm \"frmMitarbeiterDetail\", WhereCondition:=\"MitarbeiterID = \" _        & MitarbeiterID\r\nEnd Function<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<pre>Public Function frmMitarbeiterDetail_Edit(MitarbeiterID As Integer)\r\n    DoCmd.OpenForm \"frmMitarbeiterDetail\", WindowMode:=acDialog, _        WhereCondition:=\"[MitarbeiterID] = \" & MitarbeiterID, DataMode:=acFormEdit\r\nEnd Function\r\nPublic Function frmMitarbeiterDetail_New()\r\n    DoCmd.OpenForm \"frmMitarbeiterDetail\", WindowMode:=acDialog, DataMode:=acFormAdd\r\nEnd Function<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<pre>Private Sub cmdMitarbeiterAnzeigen_Click()\r\n    frmMitarbeiterDetail_Edit _        Me.frmBesprechungen_Besprechungsteilnehmer.Form!MitarbeiterID\r\n    Me.frmBesprechungen_Besprechungsteilnehmer.Requery\r\nEnd Sub\r\nPrivate Sub cmdNeuerMitarbeiter_Click()\r\n    frmMitarbeiterDetail_New\r\n    Me.frmBesprechungen_Besprechungsteilnehmer.Requery\r\nEnd Sub<\/pre>\n<p><b>Quellcode 5<\/b><\/p>\n<p>Die hier vorgestellten Beispiele vermitteln einen Eindruck, wie unterschiedliche Access-Datenbanken nebeneinander und doch miteinander arbeiten k&ouml;nnen.<\/p>\n<p>Leider sind die Vorgehensweisen nicht auf die Vorbereitung der Zusammenarbeit mit anderen Datenbanken &uuml;bertragbar, aber die aufgezeigten Techniken und M&ouml;glichkeiten lassen sich leicht auf andere F&auml;lle &uuml;bertragen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer will denn schon mehrere S&uuml;ppchen kochen, wenn er doch eines servieren kann, das allen Beteiligten schmeckt. Letzteres ist leider in den meisten Unternehmen nicht m&ouml;glich, da es in vielen Bereichen keine konsistenten Datenbest&auml;nde gibt. Das f&auml;ngt damit an, dass jeder Mitarbeiter sein pers&ouml;nliches Adressbuch in Outlook pflegt, anstatt auf die Groupware-Funktionen dieser Software zuzugreifen, die allen Mitarbeitern einen einheitlichen, aktuellen Adressbestand zur Verf&uuml;gung stellt. Da das nur der Anfang f&uuml;r eine effizientere Organisation ist und Sie es besser machen sollen, lernen Sie im vorliegenden Beitrag, wie Sie die Daten unterschiedlicher Datenbanken geschickt verkn&uuml;pfen.<\/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":[66022004,662004,44000040,44000035],"tags":[],"class_list":["post-55000214","post","type-post","status-publish","format-standard","hentry","category-66022004","category-662004","category-Allgemein","category-Datenzugriff_programmieren"],"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>Kooperation von Datenbanken - 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\/Kooperation_von_Datenbanken\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kooperation von Datenbanken\" \/>\n<meta property=\"og:description\" content=\"Wer will denn schon mehrere S&uuml;ppchen kochen, wenn er doch eines servieren kann, das allen Beteiligten schmeckt. Letzteres ist leider in den meisten Unternehmen nicht m&ouml;glich, da es in vielen Bereichen keine konsistenten Datenbest&auml;nde gibt. Das f&auml;ngt damit an, dass jeder Mitarbeiter sein pers&ouml;nliches Adressbuch in Outlook pflegt, anstatt auf die Groupware-Funktionen dieser Software zuzugreifen, die allen Mitarbeitern einen einheitlichen, aktuellen Adressbestand zur Verf&uuml;gung stellt. Da das nur der Anfang f&uuml;r eine effizientere Organisation ist und Sie es besser machen sollen, lernen Sie im vorliegenden Beitrag, wie Sie die Daten unterschiedlicher Datenbanken geschickt verkn&uuml;pfen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:39+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg06.met.vgwort.de\/na\/ce262e3e737946d0b57da2d3effa62a2\" \/>\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=\"16\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Kooperation von Datenbanken\",\"datePublished\":\"2020-05-06T15:17:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/\"},\"wordCount\":2842,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/ce262e3e737946d0b57da2d3effa62a2\",\"articleSection\":{\"0\":\"2\\\/2004\",\"1\":\"2004\",\"3\":\"Datenzugriff programmieren\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/\",\"name\":\"Kooperation von Datenbanken - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/ce262e3e737946d0b57da2d3effa62a2\",\"datePublished\":\"2020-05-06T15:17:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/ce262e3e737946d0b57da2d3effa62a2\",\"contentUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/ce262e3e737946d0b57da2d3effa62a2\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kooperation_von_Datenbanken\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kooperation von Datenbanken\"}]},{\"@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":"Kooperation von Datenbanken - 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\/Kooperation_von_Datenbanken\/","og_locale":"de_DE","og_type":"article","og_title":"Kooperation von Datenbanken","og_description":"Wer will denn schon mehrere S&uuml;ppchen kochen, wenn er doch eines servieren kann, das allen Beteiligten schmeckt. Letzteres ist leider in den meisten Unternehmen nicht m&ouml;glich, da es in vielen Bereichen keine konsistenten Datenbest&auml;nde gibt. Das f&auml;ngt damit an, dass jeder Mitarbeiter sein pers&ouml;nliches Adressbuch in Outlook pflegt, anstatt auf die Groupware-Funktionen dieser Software zuzugreifen, die allen Mitarbeitern einen einheitlichen, aktuellen Adressbestand zur Verf&uuml;gung stellt. Da das nur der Anfang f&uuml;r eine effizientere Organisation ist und Sie es besser machen sollen, lernen Sie im vorliegenden Beitrag, wie Sie die Daten unterschiedlicher Datenbanken geschickt verkn&uuml;pfen.","og_url":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:39+00:00","og_image":[{"url":"http:\/\/vg06.met.vgwort.de\/na\/ce262e3e737946d0b57da2d3effa62a2","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"16\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Kooperation von Datenbanken","datePublished":"2020-05-06T15:17:39+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/"},"wordCount":2842,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/ce262e3e737946d0b57da2d3effa62a2","articleSection":{"0":"2\/2004","1":"2004","3":"Datenzugriff programmieren"},"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/","url":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/","name":"Kooperation von Datenbanken - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/ce262e3e737946d0b57da2d3effa62a2","datePublished":"2020-05-06T15:17:39+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/#primaryimage","url":"http:\/\/vg06.met.vgwort.de\/na\/ce262e3e737946d0b57da2d3effa62a2","contentUrl":"http:\/\/vg06.met.vgwort.de\/na\/ce262e3e737946d0b57da2d3effa62a2"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Kooperation_von_Datenbanken\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Kooperation von Datenbanken"}]},{"@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\/55000214","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=55000214"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000214\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}