Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2004.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Kooperation von Datenbanken

André Minhorst, Duisburg

Wer will denn schon mehrere Süppchen kochen, wenn er doch eines servieren kann, das allen Beteiligten schmeckt. Letzteres ist leider in den meisten Unternehmen nicht möglich, da es in vielen Bereichen keine konsistenten Datenbestände gibt. Das fängt damit an, dass jeder Mitarbeiter sein persönliches Adressbuch in Outlook pflegt, anstatt auf die Groupware-Funktionen dieser Software zuzugreifen, die allen Mitarbeitern einen einheitlichen, aktuellen Adressbestand zur Verfügung stellt. Da das nur der Anfang für eine effizientere Organisation ist und Sie es besser machen sollen, lernen Sie im vorliegenden Beitrag, wie Sie die Daten unterschiedlicher Datenbanken geschickt verknüpfen.

Beispieldatenbanken

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ägen wurde anhand der Mitarbeiterverwaltung die Erstellung einer Datenbankanwendung auf Basis der MSDE, einer abgespeckten Microsoft SQL Server-Variante, erläutert. Fü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öher, die keine MSDE und keinen SQL Server verwenden wollen, profitieren können.

Es wird noch eine weitere Beispieldatenbank hinzugezogen: Die Besprechungsplanung aus der vorliegenden Ausgabe von Access im Unternehmen. Der vorliegende Beitrag beschreibt verschiedene Möglichkeiten, Daten und Objekte zweier Datenbanken in der jeweils anderen Datenbank zu verwenden.

Verknüpfen von
Mitarbeiterdaten

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ötigen beide die Daten der Mitarbeiter. Während sich die Mitarbeiterverwaltung sogar hauptsächlich mit den Mitarbeitern beschäftigt, sind die Mitarbeiter in der Besprechungsplanung nur ein Teil der eigentlich behandelten Objekte, nämlich der Besprechungen.

Daher sollen die Mitarbeiter fortan in der Mitarbeiterverwaltung gepflegt werden. Die Besprechungsplanung soll auf die in der Mitarbeiterverwaltung enthaltenen Mitarbeiterdaten zugreifen.

Aktueller Zustand

Wenn Sie die beiden Datenbanken und speziell die dort enthaltenen Tabellen zur Speicherung der Mitarbeiterdaten betrachten, fällt auf, dass die Daten in der Mitarbeiterverwaltung erwartungsgemäß wesentlich umfangreicher sind.

Die Besprechungsplanung enthält in der Tabelle tblMitarbeiter lediglich ein Indexfeld sowie ein Feld, in dem Vor- und Nachname des Mitarbeiters gespeichert werden.

Im "wirklichen Leben" 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üsste es dazu eine Rundumsoftware für alle Belange des Unternehmens geben oder das Unternehmen müsste eine solche Software erstellen lassen, was zweifelsfrei sehr teuer würde.

Public Sub MitarbeiterKopieren()

    Dim db As DAO.Database

    Dim rstMitarbeiterAlt As DAO.Recordset

    Dim rstMitarbeiterNeu As DAO.Recordset

    Dim strName As String

    Dim strVorname As String

    Dim strNachname As String

    Dim posKomma As Integer

    Set db = CurrentDb

    Set rstMitarbeiterAlt = db.OpenRecordset("tblMitarbeiterAlt", dbOpenDynaset)

    Set rstMitarbeiterNeu = db.OpenRecordset("tblMitarbeiterVerknuepft", _
        dbOpenDynaset)

    Do While Not rstMitarbeiterAlt.EOF

        strName = rstMitarbeiterAlt!Mitarbeitername

        posKomma = InStr(1, strName, ",")

        strVorname = Trim(Mid(strName, 1, posKomma - 1))

        strNachname = Trim(Mid(strName, posKomma + 1))

        rstMitarbeiterNeu.FindFirst "[Nachname] = '" & strNachname _
            & "' AND [Vorname] = '" & strVorname & "'"

        If rstMitarbeiterNeu.NoMatch Then

            rstMitarbeiterNeu.AddNew

            rstMitarbeiterNeu!Vorname = strVorname

            rstMitarbeiterNeu!Nachname = strNachname

            rstMitarbeiterNeu.Update

        End If

        rstMitarbeiterAlt.MoveNext

    Loop

End Sub

Quellcode 1

Daher ist wie im vorliegenden Fall davon auszugehen, dass mehrere Anwendungen prinzipiell die gleichen Daten speichern und, wenn überhaupt möglich, einander angepasst werden müssen.

Im vorliegenden Fall ist die Besprechungsplanung so ausgelegt, dass die Daten zu den einzelnen Mitarbeitern aus einem einzigen Feld namens Mitarbeitername bestehen, während in der Tabelle tblMitarbeiter der Mitarbeiterverwaltung die beiden Felder Vorname und Nachname getrennt geführt werden. Immerhin heißen die Primärindexfelder der beiden Tabellen beide MitarbeiterID.

Gewünschter Zustand

Ziel der hier beschriebenen Vorgehensweise ist das Schaffen eines einzigen Datentopfes mit Mitarbeiterdaten, auf den beide Anwendungen zugreifen können.

Am leichtesten geht das, indem Sie einfach die eine Anwendung beibehalten und die andere Anwendung mit den entsprechenden Daten verknüpfen. Im vorliegenden Fall bedeutet das ein Belassen der Mitarbeitertabelle in der Mitarbeiterverwaltung und die Anpassung der Besprechungsplanung.

Synchronisation der
Mitarbeitertabellen

Bevor die Mitarbeiterdaten nur noch in einer Datenbank beziehungsweise einer Tabelle gehalten werden, müssen die Daten aus beiden Tabellen zusammengefasst werden.

Dabei wird davon ausgegangen, dass Mitarbeiter, die in der Besprechungsplanung, aber nicht in der Mitarbeiterverwaltung geführt werden, zur Tabelle tblMitarbeiter der Mitarbeiterverwaltung hinzugefügt werden.

Diese Aufgabe übernimmt im vorliegenden Fall die Prozedur MitarbeiterKopieren aus Quellcode 1.

Hinweis

Diese Prozedur ist ein Beispiel für die Zusammenfassung der Datensätze zweier Tabellen in eine der beiden Tabellen. Wann immer Sie einen ähnlichen Vorgang durchführen wollen, können Sie das mit einer Anfü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ür entwickeln müssen. (

Die Tabelle durchläuft alle Datensätze der Mitarbeitertabelle der Besprechungsplanung und überprüft, ob in der entsprechenden Tabelle der Mitarbeiterverwaltung bereits ein Datensatz fü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.

Anpassen einer Anwendung an Fremdtabellen

Abfragen, Formulare, Berichte und vor allem VBA-Code nehmen in den meisten Fällen Bezug auf Tabellen und deren Felder. Naiverweise könnte man nun einen Riesenberg Arbeit vermuten, um all die Datenbankobjekte und Codezeilen nach Bezügen auf die Tabelle tblMitarbeiter und die darin enthaltenen Felder zu durchsuchen und diese anzupassen.

Es geht aber viel leichter, und zwar in wenigen Schritten. Dabei hilft die Tatsache, dass Abfragen in 98% aller Fälle genau wie Tabellen angesprochen werden können. Nachfolgend werden folgende Schritte im Detail erläutert:

  • Löschen der Tabelle tblMitarbeiter aus der Besprechungsplanung
  • Erstellen einer Verknüpfung zur Tabelle tblMitarbeiter der Mitarbeiterverwaltung und Ändern des Namens dieser Tabelle, beispielsweise in tblMitarbeiterVerknuepft
  • Erstellen einer Abfrage namens tblMitarbeiter, die den Inhalt der verknüpften Tabelle so mappt, dass der Aufbau der Abfrage dem Aufbau der gelöschten Tabelle entspricht
  • Löschen der Mitarbeitertabelle aus der Besprechungsverwaltung

    Bevor Sie die Mitarbeitertabelle der Besprechungsverwaltung löschen können, müssen Sie natürlich überprüfen, ob die Mitarbeiterverwaltung den gleichen Stand hat oder ob die Besprechungsplanung gegebenenfalls schon Mitarbeiter enthält, die noch nicht in der Mitarbeiterverwaltung gespeichert sind. Das sollte zwar nicht sein, aber es wäre einer der Gründe, um Daten nur an einem Ort zu pflegen.

    Nachdem Sie die Daten verglichen haben, können Sie die Tabelle tblMitarbeiter aus der Besprechungsplanung löschen. Wenn Sie nicht sicher sind, ob Sie die Tabelle nicht doch noch einmal benötigen, ändern Sie einfach den Namen in tblMitarbeiterAlt um.

    Verknüpfen der neuen
    Mitarbeitertabelle

    Nun können Sie die Besprechungsplanung mit der Tabelle tblMitarbeiter der Mitarbeiterverwaltung verknüpfen. Gehen Sie dabei folgendermaßen vor:

  • Führen Sie den Eintrag Datei/Externe Daten/Tabellen verknüpfen... aus der Menüleiste aus.
  • Wählen Sie im Dialog Verknüpfen die Mitarbeiterverwaltung aus.
  • Wählen Sie im Dialog Tabellen verknüpfen die Tabelle tblMitarbeiter aus (s. Abb. 1).
  • Die Tabelle erscheint nun mit einem entsprechenden Symbol im Datenbankfenster. Ändern Sie den Tabellennamen dort in tblMitarbeiterVerknuepft um (s. Abb. 2). (
  • Abb. 1: Auswahl von zu verknüpfenden Tabellen

    Abb. 2: Verknüpfte und umbenannte Tabelle

    Abb. 3: Die Abfrage zur Simulation der Tabelle tblMitarbeiter

    Sie kö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önnen, aber Sie haben ja ohnehin bereits den Tabellennamen umgeändert.

    Mappen der Tabellenfelder in einer Abfrage

    Nun folgt der Schritt, in dem Sie sich die Tatsache zu Nutze machen, dass fast alle Zugriffe auf Abfragen wie Zugriffe auf Tabellen funktionieren.

    Dabei verwenden Sie eine Abfrage, die den gleichen Namen wie die zu ersetzende Tabelle tblMitarbeiter und auch die gleichen Felder enthä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.

  • Erstellen Sie eine neue Abfrage.
  • Fügen Sie der Abfrage die Tabelle tblMitarbeiterVerknuepft hinzu.
  • Ziehen Sie das Feld MitarbeiterID in das Entwurfsraster.
  • Legen Sie ein weiteres Feld an, das den in Abb. 3 gezeigten Inhalt hat.
  • Speichern Sie die Abfrage unter dem Namen tblMitarbeiter. (
  • Der Ausdruck Mitarbeitername: [Nachname] & ", " & [Vorname] dient dazu, die beiden Felder Nachname und Vorname der Tabelle tblMitarbeiter der Mitarbeiterverwaltung in ein Feld namens Mitarbeitername zu mappen.

    Damit haben Sie nun ein Datenbankobjekt, das genau den gleichen Namen und genau die gleichen Felder wie die ursprünglich in der Besprechungsplanung verwendete Tabelle tblMitarbeiter hat, aber tatsächlich die Daten der Tabelle tblMitarbeiter der Mitarbeiterverwaltung enthält.

    Abb. 4: Falsche oder fehlende Besprechungsteilnehmer durch unterschiedliche Schlüsselfelder

    Probleme

    Die Vorgehensweise wäre zu leicht, wenn nicht noch einige Probleme auftauchen würden - zumindest, wenn in beiden Datenbanken bereits Mitarbeiterdaten vorhanden sind.

    Das erste Problem tritt zu Tage, wenn Sie die in der Besprechungsplanung enthaltenen Mitarbeiter in die Tabelle tblMitarbeiter der Mitarbeiterverwaltung übertragen hätten, ohne deren MitarbeiterID beizubehalten oder die Mitarbeiter dort ohnehin gespeichert wären, aber eine andere MitarbeiterID hätten.

    Offensichtlich wird das Problem, wenn Sie unter oben genannten Bedingungen eine Besprechung anzeigen und feststellen, dass der Besprechung plötzlich ganz andere Personen zugeordnet werden oder deren Platz ganz frei bleibt (s. Abb. 4). Es gibt auf den ersten Blick zwei nahe liegende Lösungsansätze:

  • Anpassen der Werte für das Feld MitarbeiterID in der Tabelle tblMitarbeiter der Mitarbeiterverwaltung
  • Anpassen aller Tabellen der Besprechungsplanung, die über ein Fremdschlüsselfeld auf das Feld MitarbeiterID der Tabelle tblMitarbeiter zugreifen
  • Die erste Möglichkeit erweist sich spätestens dann als zu aufwändig, wenn bereits mit der Tabelle tblMitarbeiter verknüpfte Datensätze in weiteren Tabellen der Mitarbeiterverwaltung enthalten sind.

    Bleibt also die zweite Möglichkeit. Um die Inhalte der Fremdschlüsselfelder der Tabellen anzupassen, die mit Datensätzen der Tabelle tblMitarbeiter verknüpft sind, müssen Sie eine entsprechende Prozedur erstellen. Die Prozedur soll zusammengefasst folgende Schritte durchführen:

  • Durchlaufen der Datensätze der Tabelle tblMitarbeiterAlt der Besprechungsverwaltung
  • Überprüfen, unter welcher MitarbeiterID der Mitarbeiter des aktuellen Datensatzes in der Tabelle tblMitarbeiter der Mitarbeiterverwaltung gespeichert ist
  • Anpassen der Fremdschlüsselfelder aller mit der Tabelle tblMitarbeiter verknüpften Tabellen der Besprechungsplanung
  • 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ür alle Einträge der verknüpften Tabellen in der Besprechungsplanung die MitarbeiterID von 1 auf 10 geändert werden.

    Das funktioniert aber nicht, wenn die Besprechungsplanung vorher auch einen Mitarbeiter mit der MitarbeiterID 10 enthielt.

    Dann würde dieser Mitarbeiter nicht nur den Besprechungen zugeordnet sein, denen er auch zugeordnet sein soll, sondern auch noch denen des Mitarbeiters, der ursprünglich die MitarbeiterID 1 hatte, und umgekehrt.

    Public Sub FremdschluesselAnpassen()

        Dim db As DAO.Database

        Dim rstMitarbeiter As DAO.Recordset

        Dim intNeueID As Integer

        Dim strName As String

        Dim strVorname As String

        Dim strNachname As String

        Dim posKomma As Integer

        Set db = CurrentDb

        Set rstMitarbeiter = db.OpenRecordset("tblMitarbeiterAlt", dbOpenDynaset)

        Do While Not rstMitarbeiter.EOF

            strName = rstMitarbeiter!Mitarbeitername

            posKomma = InStr(1, strName, ",")

            strVorname = Trim(Mid(strName, 1, posKomma - 1))

            strNachname = Trim(Mid(strName, posKomma + 1))

            intNeueID = DLookup("MitarbeiterID", "tblMitarbeiterVerknuepft", _
                "[Nachname] = '" & strNachname & "' AND [Vorname] = '" & strVorname & "'")

            db.Execute "INSERT INTO tblBesprechungsteilnehmerTemp(BesprechungID, " _
                & "MitarbeiterID, BesprechungsteilnehmerfunktionID) " _
                & "SELECT BesprechungID, " & intNeueID & " AS MitarbeiterID, " _
                & "BesprechungsteilnehmerfunktionID FROM tblBesprechungsteilnehmer " _
                & "WHERE MitarbeiterID = " & rstMitarbeiter!MitarbeiterID

            rstMitarbeiter.MoveNext

        Loop

    End Sub

    Quellcode 2

    Um dennoch zum Ziel zu kommen, verwenden Sie eine temporäre Tabelle namens tblBesprechungsteilnehmerTemp.

    In diese werden alle Einträge der Tabelle tblBesprechungsteilnehmer mit angepasster MitarbeiterID übertragen.

    Abb. 5: Kopieren einer Tabelle

    Legen Sie zunächst die temporäre Tabelle an. Dazu kopieren Sie die Tabelle tblBesprechungsteilnehmer über den Eintrag Kopieren des Kontextmenüs in die Zwischenablage und fügen sie mit dem Befehl Einfügen wieder in das Datenbankfenster ein.

    Im nun erscheinenden Dialog Tabelle einfügen als geben Sie den Namen tblBesprechungsteilnehmerTemp an und wählen als Option Nur Struktur aus (s. Abb. 5).

    Anschließend verwenden Sie die Prozedur aus Quellcode 2, um die einzelnen Einträge der Tabelle tblBesprechungsteilnehmer in die Tabelle tblBesprechungsteilnehmerTemp zu kopieren und dabei gleichzeitig die Inhalte des Fremdschlüsselfeldes MitarbeiterID anzupassen.

    Nachdem Sie die Richtigkeit der Daten überprüft haben, können Sie die Tabelle tblBesprechungsteilnehmer in tblBesprechungsteilnehmerAlt und die Tabelle tblBesprechungsteilnehmerTemp in tblBesprechungsteilnehmer umbenennen. Anschließend sollten alle Besprechungen wieder mit den richtigen Teilnehmern angezeigt werden.

    Abb. 6: Verweis auf eine andere Datenbank

    Formulare aus anderen
    Datenbanken verwenden

    Wenn Sie nun schon in der Besprechungsplanung auf die Mitarbeiterdaten aus der Mitarbeiterverwaltung zugreifen, wäre es doch schön, wenn Sie auch direkt von der Besprechungsplanung aus neue Mitarbeiter anlegen oder deren Daten ändern könnten.

    Importieren von Formularen aus anderen Anwendungen

    Das ist eigentlich kein Problem - kopieren Sie das entsprechende Formular aus der Mitarbeiterverwaltung in die Besprechungsplanung und fügen Sie dem Formular zum Anlegen von Besprechungen ein paar entsprechende Steuerelemente zum Aufrufen des Mitarbeiterformulars hinzu.

    Beim Öffnen des Formulars werden Sie schnell daran erinnert, dass Sie auch noch die dazugehörenden Unterformulare importieren müssen. Und als Nächstes macht sich das Fehlen der benötigten Datenherkünfte bemerkbar, für die Sie ebenfalls noch Verknüpfungen anlegen müssen.

    Nachteile

    Nachdem Sie alle benötigten Formulare kopiert und Verknüpfungen zu den entsprechenden Tabellen und Abfragen hergestellt haben, funktioniert das Anlegen von Mitarbeitern.

    Allerdings haben Sie sich damit Ärger zugezogen, den Sie gerade auf anderer Ebene vermeiden wollen: Sie haben zwei Kopien des gleichen Formulars und müssen eventuell notwendige Änderungen jedes Mal doppelt durchführen.

    "Verknüpfung" mit Formularen aus anderen Anwendungen

    Auch hier haben Sie die Möglichkeit, eine Art Verknüpfung zu erstellen. Das funktioniert nicht so direkt wie im Fall der Tabellen und ist ein wenig komplizierter.

    Um ein Formular einer anderen Datenbank in der aktuellen Datenbank aufzurufen, gehen Sie folgendermaßen vor:

  • Öffnen Sie den VBA-Editor - beispielsweise, indem Sie im Datenbankfenster in das Register Module wechseln und anschließend aus der Menüleiste den Eintrag Ansicht/Code auswählen.
  • Wählen Sie aus der Menüleiste den Eintrag Extras/Verweise aus.
  • Klicken Sie im Dialog Verweise auf die Schaltfläche Durchsuchen und wählen Sie dort die Mitarbeiterverwaltung aus. Vergessen Sie nicht, den Dateityp entsprechend einzustellen.
  • Nach dem Festlegen des Verweises auf die Mitarbeiterverwaltung schließen Sie den Dialog Verweise (s. Abb. 6). (
  • Abb. 7: Zugriff auf die Module mehrerer Datenbanken

    Im VBA-Editor finden Sie nun die Klassen- und Standardmodule der aktuellen und der verknüpften Datenbank (s. Abb. 7). Leider ist das beispielsweise auf der Registerseite Formulare des Datenbankfensters nicht der Fall, sodass keine direkte Bearbeitung der Formulare der verknüpften Datenbank möglich ist.

    Aber da Formulare und Berichte ohnehin meist per VBA-Code geöffnet werden, macht das nicht viel aus. Sie können allerdings auch via VBA nicht direkt auf Datenbankobjekte zugreifen, wie folgendes Beispiel zeigt: Testen Sie einmal das Öffnen des Formulars zur Anzeige von Mitarbeiterdetails, indem Sie im Testfenster (zu öffnen über die Tastenkombination Strg + g) die folgende Anweisung eingeben:

    DoCmd.OpenForm "frmMitarbeiterDetail"

    Gemäß der nun erscheinenden Fehlermeldung ist eine alternative Möglichkeit zum Öffnen des Formulars erforderlich. Diese Möglichkeit ist das Anlegen einer öffentlichen Funktion in einem Modul in der verknüpften Datenbank, die den Befehl zum Öffnen des gewünschten Formulars enthält (s. Quellcode 3).

    Diese Funktion erwartet als Parameter die MitarbeiterID des Mitarbeiters, dessen Detaildaten das Formular anzeigen soll.

    Wenn Sie die folgende Anweisung im Testfenster absetzen, wird das Mitarbeiterformular in der Besprechungsplanung geöffnet:

    frmMitarbeiterDetail_Open 1

    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önnen.

    Hinweis

    Beachten Sie, dass alle Änderungen, die Sie am VBA-Code der Mitarbeiterverwaltung vornehmen, von dieser Datenbank aus durchgeführt werden müssen. Änderungen, die Sie vom VBA-Fenster der Besprechungsplanung aus vornehmen, werden nicht gespeichert. (

    Dazu benötigen Sie zunächst die beiden Funktionen in der Mitarbeiterverwaltung, die dem Öffnen des Formulars frmMitarbeiterDetail dienen - einmal zum Bearbeiten und einmal zum Neuanlegen eines Mitarbeiters (s. Quellcode 4). Zu deren Eingabe schließen Sie die Besprechungsverwaltung und öffnen die Mitarbeiterverwaltung.

    Abb. 8: Schaltflächen zum Aufrufen der Mitarbeiterdetails

    Anschließend schließen Sie die Mitarbeiterverwaltung wieder und öffnen erneut die Besprechungsplanung. Dort legen Sie im Formular frmBesprechungen zwei neue Schaltflächen wie in Abb. 8 an und versehen diese mit den Prozeduren aus Quellcode 5.

    Sie können nun vom Formular frmBesprechungen das Mitarbeiterformular aus der Mitarbeiterverwaltung aufrufen und damit die Daten der Mitarbeiter einsehen, anpassen und neue Mitarbeiter anlegen.

    Public Function frmMitarbeiterDetail_Open(MitarbeiterID As Integer)

        DoCmd.OpenForm "frmMitarbeiterDetail", WhereCondition:="MitarbeiterID = " _
            & MitarbeiterID

    End Function

    Quellcode 3

    Public Function frmMitarbeiterDetail_Edit(MitarbeiterID As Integer)

        DoCmd.OpenForm "frmMitarbeiterDetail", WindowMode:=acDialog, _
            WhereCondition:="[MitarbeiterID] = " & MitarbeiterID, DataMode:=acFormEdit

    End Function

    Public Function frmMitarbeiterDetail_New()

        DoCmd.OpenForm "frmMitarbeiterDetail", WindowMode:=acDialog, DataMode:=acFormAdd

    End Function

    Quellcode 4

    Private Sub cmdMitarbeiterAnzeigen_Click()

        frmMitarbeiterDetail_Edit _
            Me.frmBesprechungen_Besprechungsteilnehmer.Form!MitarbeiterID

        Me.frmBesprechungen_Besprechungsteilnehmer.Requery

    End Sub

    Private Sub cmdNeuerMitarbeiter_Click()

        frmMitarbeiterDetail_New

        Me.frmBesprechungen_Besprechungsteilnehmer.Requery

    End Sub

    Quellcode 5

    Zusammenfassung und Ausblick

    Die hier vorgestellten Beispiele vermitteln einen Eindruck, wie unterschiedliche Access-Datenbanken nebeneinander und doch miteinander arbeiten können.

    Leider sind die Vorgehensweisen nicht auf die Vorbereitung der Zusammenarbeit mit anderen Datenbanken übertragbar, aber die aufgezeigten Techniken und Möglichkeiten lassen sich leicht auf andere Fälle übertragen.

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    Download

    Download

    Die .zip-Datei enthält folgende Dateien:

    Mitarbeiterverwaltung97.mdb

    Mitarbeiterverwaltung00.mdb

    DatenbankenVerknuepfen97.mdb

    DatenbankenVerknuepfen00.mdb

    Beispieldateien downloaden

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.