Access-Quellcodeverwaltung mit GitHub Desktop

Es gibt verschiedene Systeme, mit denen wir die Objekte aus Access extrahieren und unter eine Versionsverwaltung stellen können. In diesem Beitrag stellen wir eine Kombination aus dem kostenlosen Tool “Version Control Add-In” und “GitHub Desktop” vor. Dabei zeigen wir, wie die notwendige Komponente zu Access hinzugefügt wird, wie wir diese nutzen, um die Access-Elemente zu extrahieren und wie wir diese mit GitHub Desktop verwalten, um beispielsweise Unterschiede zwischen verschiedenen Versionen einer Datenbank ausfindig zu machen.

Vorbereitungen

Als Erstes treffen wir einige Vorbereitungen:

  • Download des Version Control Add-Ins von https://github.com/joyfullservice/msaccess-vcs-addin/releases/tag/v4.0.34
  • Installation des Version Control Add-Ins: Im Download finden wir eine Datei namens Version Control.accda. Diese fügen wir zu einem vertrauenswürdigen Ordner hinzu und öffnen diese dann. Hier führen wir die Installation mit einem Klick auf die Schaltfläche Install Add-In aus (siehe Bild 1).
  • Installieren des Version Control Add-Ins

    Bild 1: Installieren des Version Control Add-Ins

  • Danach finden wir das Add-In bereits als eigenes Ribbon-Tab in Access vor (siehe Bild 2).
  • Die Benutzeroberfläche des Version Control Add-Ins

    Bild 2: Die Benutzeroberfläche des Version Control Add-Ins

  • Download von GitHub Desktop von https://desktop.github.com/
  • Installation von GitHub Desktop durch Ausführen einer Datei wie GitHubDesktopSetup-x64.exe.
  • Gegebenenfalls Anlegen eines Benutzerkontos bei github.com

Export der Datenbankelemente

Damit können wir den ersten Export der Datenbankelemente einer kleinen Beispieldatenbank durchführen. Wir klicken dazu einfach auf die Schaltfläche Export Source Files (siehe Bild 3).

Erster Export der Objekte

Bild 3: Erster Export der Objekte

Dieser Vorgang verläuft sehr schnell. Das Ergebnis dokumentiert das Tool in dem Dialog aus Bild 4.

Dokumentation des Exports

Bild 4: Dokumentation des Exports

Ergebnis des Exports

Schauen wir uns nun an, was der Export für uns erledigt hat. Dazu schauen wir uns das Verzeichnis der Datenbank an, in dem wir einen neuen Ordner finden mit dem Namen der Datei und angehängtem .src (siehe Bild 5).

Exportierte Access-Elemente und Informationen

Bild 5: Exportierte Access-Elemente und Informationen

In diesem Verzeichnis sehen wir Ordner für Tabellen (tbldefs), Abfragen (queries), Formulare (forms) und Module (modules) sowie einige weitere Dateien, die Daten wie beispielsweise die Datenbankoptionen, Einstellungen des Navigationsbereichs, Verweise und mehr enthalten.

Datenbank aus Export neu erstellen

Bevor wir uns anschauen, wie wir mit dem Export in GitHub Desktop arbeiten können, werfen wir einen Blick auf weitere Funktionen von Version Control. Da wäre zum Beispiel die Schaltfläche Build From Source. Diese rufen wir von einer neuen, leeren Datenbank aus auf und erzeugen so die komplette Anwendung, die wir soeben exportiert haben, neu. Das heißt, dass alle Elemente importiert werden und dass alle weiteren Einstellungen wie Verweise und Access-Optionen wiederhergestellt werden.

Nur VBA-Code exportieren

Mit der Schaltfläche Export VBA Code können wir ausschließlich die VBA-Module exportieren. Dies exportiert nicht nur die reinen Standard- und Klassenmodule, sondern auch noch die Klassenmodule von Formularen und Berichten.

Ausgewählte Elemente exportieren

Wir können auch ein oder mehrere Elemente im Navigationsbereich selektieren und diese exportieren. Dazu nutzen wir die Schaltfläche Export Selected.

Extern geänderte Elemente “mergen”

Wir können nun, und das ist eine Funktion für den Fall, dass mehrere Entwickler an einer Datenbank arbeiten, die Änderung eines anderen Entwicklers an einem Element in unsere Access-Datenbank integrieren.

Stellen wir uns den folgenden Ablauf vor: Wir exportieren die Elemente unserer Datenbank in das oben erwähnte Verzeichnis.

Ein anderer Entwickler liest diese Elemente in seine Version der Datenbank ein. Dann ändert er eine oder mehrere Dateien und schreibt diese in Form der geänderten Elemente in das Verzeichnis zurück. Wir können nun die geänderten Elemente wiederum in unsere Version der Datenbank einlesen. Dazu ist es nötig, dass wir einmal den Befehl Build From Source aufgerufen haben.

Danach können wir jederzeit alle Änderungen durch einen Klick auf die Schaltfläche Merge Build in unsere Version einlesen. Wir haben zu Beispielzwecken einfach eine Zeile in der Datei mdlBeispiel geändert. Rufen wir dann den Befehl Merge Build auf, erhalten wir den Dialog aus Bild 6.

Import geänderter Elemente

Bild 6: Import geänderter Elemente

Dieser Dialog meldet uns, welche Objekte seit dem letzten Export von außen geändert wurden – in diesem Fall genau die Datei mdlBeispiel.bas, die den Code des Moduls mdlBeispiel enthält. Klicken wir auf Continue, wird die neue Version des Moduls in unsere Version der Datenbank eingelesen.

Datenbank neu aus Quellen erstellen

Die nächste Schaltfläche mit dem Text Build As… ermöglicht es uns, aus dem aktuellen Inhalt des exportierten Verzeichnisses eine neue Version der Datenbank zu erstellen. Dazu geben wir einfach den Dateinamen der zu erstellenden Datei ein.

Einzelne Elemente aus dem Verzeichnis laden

Der nächste Befehl Load Selected setzt voraus, dass wir mindestens ein Element im Navigationsbereich markiert haben. Dieses wird dann aus dem Verzeichnis neu eingelesen. Wenn sich die beiden Versionen unterscheiden, erscheint wieder der Dialog zum Lösen von Konflikten.

Weitere Befehle

In der nächsten Gruppe des Ribbons finden wir weitere Befehle:

  • Source Folder: Öffnet den Zielordner im Windows Explorer.
  • Export Log: Zeigt die Logdatei zum Exportieren von Elementen an.
  • Build Log: Zeigt die Logdatei zum Erstellen von Elementen an.
  • Advanced Tools: Weitere Tools

Nutzen der Quellcodeverwaltung

Bisher haben wir einfach nur Elemente exportiert und importiert und gezeigt, wie wir diese nach Änderungen an den exportierten Elementen wieder importieren können.

Jetzt gehen wir einen Schritt weiter und stellen den exportierten Ordner unter Versionsverwaltung. Dazu öffnen wir GitHub Desktop.

Hier finden wir den Startbildschirm aus Bild 7 vor. Hier wählen wir den Befehl Add an Existing Repository from your hard drive… aus – wir haben die Dateien ja bereits angelegt. Hier wählen wir das Verzeichnis mit der Endung .src aus.

GitHub Desktop nach dem Start

Bild 7: GitHub Desktop nach dem Start

Nach dem Bestätigen fragt GitHub Desktop uns, ob wir ein Repository erstellen sollen, da das Verzeichnis kein Repository repräsentiert.

Dem stimmen wir zu, indem wir auf den Link create a repository klicken (siehe Bild 8).

Frage, ob ein Repository erstellt werden soll

Bild 8: Frage, ob ein Repository erstellt werden soll

Danach erscheint der Dialog Create a new repository, der bereits den Pfad enthält, den wir soeben ausgewählt haben. Die Einstellungen übernehmen wir und klicken auf Create repository (siehe Bild 9).

Eingeben der Eigenschaften des Repositorys

Bild 9: Eingeben der Eigenschaften des Repositorys

GitHub Desktop zeigt nun das neue Repository an, allerdings nur durch die Anzeige unter Current repository (siehe Bild 10).

GitHub Desktop mit dem neuen Repository

Bild 10: GitHub Desktop mit dem neuen Repository

Ansonsten sehen wir keine Änderungen in der Historie, was auch kein Wunder ist, weil wir das Repository neu erstellt haben.

Dadurch wurde der aktuelle Stand bereits als erstes Commit gespeichert. Dieser Commit heißt Initial Commit.

Im Verzeichnis finden wir eine neue Datei namens .gitattributes, welche Informationen über das Git-Repository enthält.

Jetzt ändern wir eine Zeile im Modul mdlBeispiel und exportieren die Elemente erneut.

Schauen wir uns nun den aktuellen Zustand in GitHub Desktop an, sehen wir vier Dateien unter Changes. Interessant ist die Datei modules/mdlBeispiel.bas. Diese markiert die geänderte Zeile mit grüner Hintergrundfarbe und stellt dieser ein Plus-Zeichen voran (siehe Bild 11).

Anzeige der Änderungen des Moduls

Bild 11: Anzeige der Änderungen des Moduls

Löschen wir hingegen eine Zeile, wird dieser rot markiert und mit einem Minus-Zeichen versehen.

Ersetzen wir eine Zeile, wird die alte Zeile rot markiert und die neue Zeile grün (siehe Bild 12).

Anzeige weiterer Änderungen des Moduls

Bild 12: Anzeige weiterer Änderungen des Moduls

Was passiert hier im Hintergrund? Da das Verzeichnis unter der Verwaltung von GitHub Desktop steht, werden geänderte Dateien direkt registriert und die Änderungen werden erfasst. Diese werden daraufhin direkt grafisch dargestellt.

Verschiedene Änderungen

Im Beispiel haben wir die Änderungen am Code eines VBA-Moduls gesehen. Nun schauen wir uns an, wie weitere Änderungen abgebildet werden.

  • Änderungen an Tabellen
  • Änderungen an Abfragen
  • Änderungen an Formularen
  • Änderungen an Berichten
  • Änderungen an Makros
  • Änderungen an Optionen
  • Änderungen an Verweisen

Änderungen an Tabellen

Wir haben einer Tabelle ein Feld wie in Bild 13 hinzugefügt.

Hinzufügen eines neuen Feldes

Bild 13: Hinzufügen eines neuen Feldes

Wenn wir danach entweder den Befehl Export Source Files aufrufen und so dafür sorgen, dass alle geänderten Dateien exportiert werden oder die geänderte Tabelle markieren und dann auf Export Selected klicken, können wir anschließend in GitHub Desktop die Änderungen betrachten.

Die erste Version sehen wir, wenn wir links auf tbldefs\tblBeispiel.sql klicken. Damit erhalten wir die Änderungen, die in einem SQL-Skript zum Erstellen der Tabelle notwendig wären (siehe Bild 14).

Unterschiede am SQL-Code für ein neues Feld in einer Tabelle

Bild 14: Unterschiede am SQL-Code für ein neues Feld in einer Tabelle

Es gibt jedoch noch eine weitere Ansicht. Diese enthält die Beschreibung des neuen Feldes im XML-Format. Die Änderung hier ist etwas präziser beschrieben, da wir hier nicht die Änderung der vorherigen Zeile durch das angefügte Komma sehen, sondern direkt nur die Informationen für das neue Feld dargestellt werden (siehe Bild 15).

Unterschiede am XML-Code für ein neues Feld in einer Tabelle

Bild 15: Unterschiede am XML-Code für ein neues Feld in einer Tabelle

Änderungen an Abfragen

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar