{"id":55001495,"date":"2024-06-01T00:00:00","date_gmt":"2026-01-16T17:12:39","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1495"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"AccessQuellcodeverwaltung_mit_GitHub_Desktop","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/","title":{"rendered":"Access-Quellcodeverwaltung mit GitHub Desktop"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg02.met.vgwort.de\/na\/e4e774afc38d4d179a5a96cc4525d38e\" width=\"1\" height=\"1\" alt=\"\"><b>Es gibt verschiedene Systeme, mit denen wir die Objekte aus Access extrahieren und unter eine Versionsverwaltung stellen k&ouml;nnen. In diesem Beitrag stellen wir eine Kombination aus dem kostenlosen Tool &#8222;Version Control Add-In&#8220; und &#8222;GitHub Desktop&#8220; vor. Dabei zeigen wir, wie die notwendige Komponente zu Access hinzugef&uuml;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.<\/b><\/p>\n<h2>Vorbereitungen<\/h2>\n<p>Als Erstes treffen wir einige Vorbereitungen:<\/p>\n<ul>\n<li>Download des V<b>ersion Control Add-Ins <\/b>von <b>https:\/\/github.com\/joyfullservice\/msaccess-vcs-addin\/releases\/tag\/v4.0.34<\/b><\/li>\n<li>Installation des <b>Version Control Add-Ins<\/b>: Im Download finden wir eine Datei namens <b>Version Control.accda<\/b>. Diese f&uuml;gen wir zu einem vertrauensw&uuml;rdigen Ordner hinzu und &ouml;ffnen diese dann. Hier f&uuml;hren wir die Installation mit einem Klick auf die Schaltfl&auml;che <b>Install Add-In <\/b>aus (siehe Bild 1).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_001.png\" alt=\"Installieren des Version Control Add-Ins\" width=\"499,5589\" height=\"367,9324\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Installieren des Version Control Add-Ins<\/span><\/b><\/p>\n<li>Danach finden wir das Add-In bereits als eigenes Ribbon-Tab in Access vor (siehe Bild 2).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_002.png\" alt=\"Die Benutzeroberfl&auml;che des Version Control Add-Ins\" width=\"700\" height=\"112,1512\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Die Benutzeroberfl&auml;che des Version Control Add-Ins<\/span><\/b><\/p>\n<li>Download von <b>GitHub Desktop <\/b>von <b>https:\/\/desktop.github.com\/<\/b><\/li>\n<li>Installation von <b>GitHub Desktop <\/b>durch Ausf&uuml;hren einer Datei wie <b>GitHubDesktopSetup-x64.exe<\/b>.<\/li>\n<li>Gegebenenfalls Anlegen eines Benutzerkontos bei <b>github.com<\/b><\/li>\n<\/ul>\n<h2>Export der Datenbankelemente<\/h2>\n<p>Damit k&ouml;nnen wir den ersten Export der Datenbankelemente einer kleinen Beispieldatenbank durchf&uuml;hren. Wir klicken dazu einfach auf die Schaltfl&auml;che <b>Export Source Files <\/b>(siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_003.png\" alt=\"Erster Export der Objekte\" width=\"700\" height=\"300,2898\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Erster Export der Objekte<\/span><\/b><\/p>\n<p>Dieser Vorgang verl&auml;uft sehr schnell. Das Ergebnis dokumentiert das Tool in dem Dialog aus Bild 4.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_004.png\" alt=\"Dokumentation des Exports\" width=\"599,559\" height=\"445,3593\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Dokumentation des Exports<\/span><\/b><\/p>\n<h2>Ergebnis des Exports<\/h2>\n<p>Schauen wir uns nun an, was der Export f&uuml;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&auml;ngtem <b>.src<\/b> (siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_005.png\" alt=\"Exportierte Access-Elemente und Informationen\" width=\"599,559\" height=\"593,122\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Exportierte Access-Elemente und Informationen<\/span><\/b><\/p>\n<p>In diesem Verzeichnis sehen wir Ordner f&uuml;r Tabellen (<b>tbldefs<\/b>), Abfragen (<b>queries<\/b>), Formulare (<b>forms<\/b>) und Module (<b>modules<\/b>) sowie einige weitere Dateien, die Daten wie beispielsweise die Datenbankoptionen, Einstellungen des Navigationsbereichs, Verweise und mehr enthalten.<\/p>\n<h2>Datenbank aus Export neu erstellen<\/h2>\n<p>Bevor wir uns anschauen, wie wir mit dem Export in <b>GitHub Desktop <\/b>arbeiten k&ouml;nnen, werfen wir einen Blick auf weitere Funktionen von <b>Version Control<\/b>. Da w&auml;re zum Beispiel die Schaltfl&auml;che <b>Build From Source<\/b>. Diese rufen wir von einer neuen, leeren Datenbank aus auf und erzeugen so die komplette Anwendung, die wir soeben exportiert haben, neu. Das hei&szlig;t, dass alle Elemente importiert werden und dass alle weiteren Einstellungen wie Verweise und Access-Optionen wiederhergestellt werden.<\/p>\n<h2>Nur VBA-Code exportieren<\/h2>\n<p>Mit der Schaltfl&auml;che <b>Export VBA Code <\/b>k&ouml;nnen wir ausschlie&szlig;lich die VBA-Module exportieren. Dies exportiert nicht nur die reinen Standard- und Klassenmodule, sondern auch noch die Klassenmodule von Formularen und Berichten.<\/p>\n<h2>Ausgew&auml;hlte Elemente exportieren<\/h2>\n<p>Wir k&ouml;nnen auch ein oder mehrere Elemente im Navigationsbereich selektieren und diese exportieren. Dazu nutzen wir die Schaltfl&auml;che <b>Export Selected<\/b>.<\/p>\n<h2>Extern ge&auml;nderte Elemente &#8222;mergen&#8220;<\/h2>\n<p>Wir k&ouml;nnen nun, und das ist eine Funktion f&uuml;r den Fall, dass mehrere Entwickler an einer Datenbank arbeiten, die &Auml;nderung eines anderen Entwicklers an einem Element in unsere Access-Datenbank integrieren.<\/p>\n<p>Stellen wir uns den folgenden Ablauf vor: Wir exportieren die Elemente unserer Datenbank in das oben erw&auml;hnte Verzeichnis.<\/p>\n<p>Ein anderer Entwickler liest diese Elemente in seine Version der Datenbank ein. Dann &auml;ndert er eine oder mehrere Dateien und schreibt diese in Form der ge&auml;nderten Elemente in das Verzeichnis zur&uuml;ck. Wir k&ouml;nnen nun die ge&auml;nderten Elemente wiederum in unsere Version der Datenbank einlesen. Dazu ist es n&ouml;tig, dass wir einmal den Befehl <b>Build From Source <\/b>aufgerufen haben.<\/p>\n<p>Danach k&ouml;nnen wir jederzeit alle &Auml;nderungen durch einen Klick auf die Schaltfl&auml;che <b>Merge Build <\/b>in unsere Version einlesen. Wir haben zu Beispielzwecken einfach eine Zeile in der Datei <b>mdlBeispiel <\/b>ge&auml;ndert. Rufen wir dann den Befehl <b>Merge Build <\/b>auf, erhalten wir den Dialog aus Bild 6.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_006.png\" alt=\"Import ge&auml;nderter Elemente\" width=\"649,559\" height=\"455,2913\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Import ge&auml;nderter Elemente<\/span><\/b><\/p>\n<p>Dieser Dialog meldet uns, welche Objekte seit dem letzten Export von au&szlig;en ge&auml;ndert wurden &#8211; in diesem Fall genau die Datei <b>mdlBeispiel.bas<\/b>, die den Code des Moduls <b>mdlBeispiel <\/b>enth&auml;lt. Klicken wir auf <b>Continue<\/b>, wird die neue Version des Moduls in unsere Version der Datenbank eingelesen.<\/p>\n<h2>Datenbank neu aus Quellen erstellen<\/h2>\n<p>Die n&auml;chste Schaltfl&auml;che mit dem Text <b>Build As&#8230;<\/b> erm&ouml;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.<\/p>\n<h2>Einzelne Elemente aus dem Verzeichnis laden<\/h2>\n<p>Der n&auml;chste Befehl <b>Load Selected <\/b>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&ouml;sen von Konflikten.<\/p>\n<h2>Weitere Befehle<\/h2>\n<p>In der n&auml;chsten Gruppe des Ribbons finden wir weitere Befehle:<\/p>\n<ul>\n<li><b>Source Folder<\/b>: &Ouml;ffnet den Zielordner im Windows Explorer.<\/li>\n<li><b>Export Log<\/b>: Zeigt die Logdatei zum Exportieren von Elementen an.<\/li>\n<li><b>Build Log<\/b>: Zeigt die Logdatei zum Erstellen von Elementen an.<\/li>\n<li><b>Advanced Tools<\/b>: Weitere Tools<\/li>\n<\/ul>\n<h2>Nutzen der Quellcodeverwaltung<\/h2>\n<p>Bisher haben wir einfach nur Elemente exportiert und importiert und gezeigt, wie wir diese nach &Auml;nderungen an den exportierten Elementen wieder importieren k&ouml;nnen.<\/p>\n<p>Jetzt gehen wir einen Schritt weiter und stellen den exportierten Ordner unter Versionsverwaltung. Dazu &ouml;ffnen wir <b>GitHub Desktop<\/b>.<\/p>\n<p>Hier finden wir den Startbildschirm aus Bild 7 vor. Hier w&auml;hlen wir den Befehl <b>Add an Existing Repository from your hard drive&#8230; <\/b>aus &#8211; wir haben die Dateien ja bereits angelegt. Hier w&auml;hlen wir das Verzeichnis mit der Endung <b>.src <\/b>aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_007.png\" alt=\"GitHub Desktop nach dem Start\" width=\"700\" height=\"481,2498\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: GitHub Desktop nach dem Start<\/span><\/b><\/p>\n<p>Nach dem Best&auml;tigen fragt <b>GitHub Desktop <\/b>uns, ob wir ein Repository erstellen sollen, da das Verzeichnis kein Repository repr&auml;sentiert.<\/p>\n<p>Dem stimmen wir zu, indem wir auf den Link <b>create a repository <\/b>klicken (siehe Bild 8).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_008.png\" alt=\"Frage, ob ein Repository erstellt werden soll\" width=\"424,5589\" height=\"273,5821\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Frage, ob ein Repository erstellt werden soll<\/span><\/b><\/p>\n<p>Danach erscheint der Dialog <b>Create a new repository<\/b>, der bereits den Pfad enth&auml;lt, den wir soeben ausgew&auml;hlt haben. Die Einstellungen &uuml;bernehmen wir und klicken auf <b>Create repository<\/b> (siehe Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_009.png\" alt=\"Eingeben der Eigenschaften des Repositorys\" width=\"424,5589\" height=\"481,7111\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Eingeben der Eigenschaften des Repositorys<\/span><\/b><\/p>\n<p><b>GitHub Desktop <\/b>zeigt nun das neue Repository an, allerdings nur durch die Anzeige unter <b>Current repository<\/b> (siehe Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_010.png\" alt=\"GitHub Desktop mit dem neuen Repository\" width=\"700\" height=\"150,173\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: GitHub Desktop mit dem neuen Repository<\/span><\/b><\/p>\n<p>Ansonsten sehen wir keine &Auml;nderungen in der Historie, was auch kein Wunder ist, weil wir das Repository neu erstellt haben.<\/p>\n<p>Dadurch wurde der aktuelle Stand bereits als erstes Commit gespeichert. Dieser Commit hei&szlig;t <b>Initial Commit<\/b>.<\/p>\n<p>Im Verzeichnis finden wir eine neue Datei namens <b>.gitattributes<\/b>, welche Informationen &uuml;ber das Git-Repository enth&auml;lt.<\/p>\n<p>Jetzt &auml;ndern wir eine Zeile im Modul <b>mdlBeispiel<\/b> und exportieren die Elemente erneut.<\/p>\n<p>Schauen wir uns nun den aktuellen Zustand in <b>GitHub Desktop <\/b>an, sehen wir vier Dateien unter <b>Changes<\/b>. Interessant ist die Datei <b>modules\/mdlBeispiel.bas<\/b>. Diese markiert die ge&auml;nderte Zeile mit gr&uuml;ner Hintergrundfarbe und stellt dieser ein Plus-Zeichen voran (siehe Bild 11).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_011.png\" alt=\"Anzeige der &Auml;nderungen des Moduls\" width=\"700\" height=\"229,0909\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Anzeige der &Auml;nderungen des Moduls<\/span><\/b><\/p>\n<p>L&ouml;schen wir hingegen eine Zeile, wird dieser rot markiert und mit einem Minus-Zeichen versehen.<\/p>\n<p>Ersetzen wir eine Zeile, wird die alte Zeile rot markiert und die neue Zeile gr&uuml;n (siehe Bild 12).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_012.png\" alt=\"Anzeige weiterer &Auml;nderungen des Moduls\" width=\"649,559\" height=\"291,9366\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Anzeige weiterer &Auml;nderungen des Moduls<\/span><\/b><\/p>\n<p>Was passiert hier im Hintergrund? Da das Verzeichnis unter der Verwaltung von GitHub Desktop steht, werden ge&auml;nderte Dateien direkt registriert und die &Auml;nderungen werden erfasst. Diese werden daraufhin direkt grafisch dargestellt.<\/p>\n<h2>Verschiedene &Auml;nderungen<\/h2>\n<p>Im Beispiel haben wir die &Auml;nderungen am Code eines VBA-Moduls gesehen. Nun schauen wir uns an, wie weitere &Auml;nderungen abgebildet werden.<\/p>\n<ul>\n<li>&Auml;nderungen an Tabellen<\/li>\n<li>&Auml;nderungen an Abfragen<\/li>\n<li>&Auml;nderungen an Formularen<\/li>\n<li>&Auml;nderungen an Berichten<\/li>\n<li>&Auml;nderungen an Makros<\/li>\n<li>&Auml;nderungen an Optionen<\/li>\n<li>&Auml;nderungen an Verweisen<\/li>\n<\/ul>\n<h2>&Auml;nderungen an Tabellen<\/h2>\n<p>Wir haben einer Tabelle ein Feld wie in Bild 13 hinzugef&uuml;gt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_013.png\" alt=\"Hinzuf&uuml;gen eines neuen Feldes\" width=\"449,5589\" height=\"131,6565\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Hinzuf&uuml;gen eines neuen Feldes<\/span><\/b><\/p>\n<p>Wenn wir danach entweder den Befehl <b>Export Source Files <\/b>aufrufen und so daf&uuml;r sorgen, dass alle ge&auml;nderten Dateien exportiert werden oder die ge&auml;nderte Tabelle markieren und dann auf <b>Export Selected <\/b>klicken, k&ouml;nnen wir anschlie&szlig;end in <b>GitHub Desktop <\/b>die &Auml;nderungen betrachten.<\/p>\n<p>Die erste Version sehen wir, wenn wir links auf <b>tbldefs\\tblBeispiel.sql <\/b>klicken. Damit erhalten wir die &Auml;nderungen, die in einem SQL-Skript zum Erstellen der Tabelle notwendig w&auml;ren (siehe Bild 14).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_014.png\" alt=\"Unterschiede am SQL-Code f&uuml;r ein neues Feld in einer Tabelle\" width=\"700\" height=\"231,875\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Unterschiede am SQL-Code f&uuml;r ein neues Feld in einer Tabelle<\/span><\/b><\/p>\n<p>Es gibt jedoch noch eine weitere Ansicht. Diese enth&auml;lt die Beschreibung des neuen Feldes im XML-Format. Die &Auml;nderung hier ist etwas pr&auml;ziser beschrieben, da wir hier nicht die &Auml;nderung der vorherigen Zeile durch das angef&uuml;gte Komma sehen, sondern direkt nur die Informationen f&uuml;r das neue Feld dargestellt werden (siehe Bild 15).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_015.png\" alt=\"Unterschiede am XML-Code f&uuml;r ein neues Feld in einer Tabelle\" width=\"700\" height=\"538,854\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: Unterschiede am XML-Code f&uuml;r ein neues Feld in einer Tabelle<\/span><\/b><\/p>\n<h2>&Auml;nderungen an Abfragen<\/h2>\n<p>&Auml;ndern wir die Abfrage <b>qryBeispiel<\/b>, die zuvor die beiden Felder <b>ID <\/b>und <b>Beispielfeld <\/b>der Tabelle <b>tblBeispiele<\/b> enthielt, indem wir dieser das neue Feld der Tabelle <b>tblBeispiele <\/b>hinzuf&uuml;gen, f&uuml;r das wir au&szlig;erdem noch ein Kriterium festlegen. Exportieren wir diese &Auml;nderung und schauen uns das Ergebnis in GitHub Desktop an, sehen wir die &Auml;nderungen im SQL-Format wie in Bild 16.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_016.png\" alt=\"Unterschiede am XML-Code f&uuml;r ein neues Feld mit Bedingung in einer Abfrage\" width=\"549,559\" height=\"370,9955\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 16: Unterschiede am XML-Code f&uuml;r ein neues Feld mit Bedingung in einer Abfrage<\/span><\/b><\/p>\n<h2>&Auml;nderungen an Formularen und Berichten<\/h2>\n<p>Anschlie&szlig;end haben wir das Formular <b>frmBeispiele <\/b>angepasst, indem wir das neue Feld der Tabelle <b>tblBeispiele <\/b>hinzugef&uuml;gt haben. Dies sieht wie in Bild 17 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_017.png\" alt=\"&Auml;nderungen f&uuml;r ein neues Textfeld\" width=\"599,559\" height=\"618,7115\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 17: &Auml;nderungen f&uuml;r ein neues Textfeld<\/span><\/b><\/p>\n<p>Hier sehen wir wiederum ein anderes Format &#8211; kein VBA, kein SQL und kein XML, sondern dies ist das Format, in dem Access die Definition von Formularen und Berichten exportiert. Der komplette gr&uuml;ne Bereich zeigt die Definition des neuen Steuerelements mit seinen Eigenschaften.<\/p>\n<h2>&Auml;nderungen an Makros<\/h2>\n<p>Wenn wir ein neues Makro anlegen und dieses exportieren, erhalten wir ebenfalls eine &Auml;nderung in GitHub Desktop. In diesem Fall wird die komplette Definition ausgegeben &#8211; siehe Bild 18.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_023.png\" alt=\"Anlegen eines neuen Makros\" width=\"700\" height=\"372,5103\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 18: Anlegen eines neuen Makros<\/span><\/b><\/p>\n<h2>&Auml;nderungen an Optionen<\/h2>\n<p>Eine Funktion, die sehr spannend ist, ist das Tracken von &Auml;nderungen an den Access-Optionen. Angenommen, wir &auml;ndern einmal die Optionen der aktuellen Datenbank wie in Bild 19.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_018.png\" alt=\"&Auml;nderungen an den Access-Optionen\" width=\"549,559\" height=\"390,6728\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 19: &Auml;nderungen an den Access-Optionen<\/span><\/b><\/p>\n<p>Wenn wir die Datenbank dann exportieren und die &Auml;nderungen in GitHub Desktop anzeigen lassen, erhalten wir die Ansicht aus Bild 20. In diesem Ausschnitt sehen wir den hinzugef&uuml;gten Anwendungstitel sowie die ge&auml;nderte Einstellung f&uuml;r das automatische Komprimieren der Datenbank beim Schlie&szlig;en.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_019.png\" alt=\"&Auml;nderungen an den Access-Optionen in GitHub Desktop\" width=\"474,5589\" height=\"237,2794\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 20: &Auml;nderungen an den Access-Optionen in GitHub Desktop<\/span><\/b><\/p>\n<h2>&Auml;nderungen an Verweisen<\/h2>\n<p>Nun f&uuml;gen wir dem VBA-Projekt einen neuen Verweis hinzu (siehe Bild 21).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_020.png\" alt=\"Hinzuf&uuml;gen eines Verweises\" width=\"424,5589\" height=\"334,6954\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 21: Hinzuf&uuml;gen eines Verweises<\/span><\/b><\/p>\n<p>Nach dem Exportieren des aktuellen Standes der Datenbank finden wir diese &Auml;nderung ebenfalls in GitHub Desktop vor. Dazu zeigen wir den Bereich <b>vbe-references.json<\/b>, der seine Informationen im JSON-Format speichert. Hier sehen wir einen neuen Eintrag wie in Bild 22.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_021.png\" alt=\"Dokumentation der &Auml;nderung eines Verweises in GitHub\" width=\"649,559\" height=\"329,7208\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 22: Dokumentation der &Auml;nderung eines Verweises in GitHub<\/span><\/b><\/p>\n<h2>Grundlegende GitHub-Funktionen<\/h2>\n<p>Wir wollen in diesem Beitrag weniger auf die Quellcodeverwaltung an sich eingehen, sondern eher die Zusammenarbeit zwischen dem Version Control Add-In und GitHub Desktop beschreiben. Dennoch m&uuml;ssen wir kurz das Thema <b>Commit <\/b>anschauen. In unserem Beispiel, bei dem wir ein bestehendes Verzeichnis zu GitHub hinzugef&uuml;gt haben, wurde direkt zu Beginn ein initiales Commit durchgef&uuml;hrt. Das hei&szlig;t, dass der aktuelle Stand gespeichert wird.<\/p>\n<p>Wir h&auml;tten auch andersherum starten k&ouml;nnen, indem wir ein neues, leeres Repository anlegen. Dazu hinterlegen wir ein weiteres Verzeichnis im Verzeichnis der Datenbankdatei. Dann w&auml;hlen wir in GitHub Desktop den Befehl <b>File|New Repository&#8230; <\/b>aus.<\/p>\n<p>Im Dialog <b>Create a new repository <\/b>geben wir einen Namen f&uuml;r das Repository an und w&auml;hlen das Verzeichnis unter <b>Local path <\/b>aus.<\/p>\n<p>Unter <b>Name <\/b>geben wir das Repository-Verzeichnis an, unter <b>Local path <\/b>das Verzeichnis, in dem dieses erstellt werden soll (siehe Bild 23).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_024.png\" alt=\"Anlegen eines neuen Repositorys\" width=\"349,5589\" height=\"399,3753\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 23: Anlegen eines neuen Repositorys<\/span><\/b><\/p>\n<p>Dadurch wird das Verzeichnis <b>NeuesRepository <\/b>angelegt, das bereits eine Datei namens <b>.gitattributes <\/b>enth&auml;lt. Au&szlig;erdem wird ein <b>Initial Commit <\/b>ausgef&uuml;hrt, der den aktuellen Stand der Dateien sichert. Davon k&ouml;nnen wir uns in GitHub Desktop &uuml;berzeugen, wenn wir zum Registerreiter <b>History<\/b> im linken Bereich wechseln (siehe Bild 24).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_025.png\" alt=\"Der initiale Commit\" width=\"700\" height=\"188,7966\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 24: Der initiale Commit<\/span><\/b><\/p>\n<p>Nun k&ouml;nnen wir den ersten Export der Elemente der Datenbank mit <b>Version Control <\/b>durchf&uuml;hren. Dies wird normalerweise ein eigenes Verzeichnis nach den Standardvorgaben von <b>Version Control <\/b>erstellen. Damit das Verzeichnis verwendet wird, in dem wir gerade das Repository angelegt haben, rufen wir den Befehl <b>View Options <\/b>auf und tragen dort unter Export f&uuml;r die Eigenschaft <b>Export Folder <\/b>das Zielverzeichnis ein (siehe Bild 25).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_022.png\" alt=\"Einstellen des Zielverzeichnisses\" width=\"599,559\" height=\"427,3641\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 25: Einstellen des Zielverzeichnisses<\/span><\/b><\/p>\n<p>Nun klicken wir in Access auf <b>Export Source Files<\/b>. Dadurch wird ein initialer Export aller Elemente der Datenbank in das Verzeichnis durchgef&uuml;hrt.<\/p>\n<p>Wechseln wir nun zu GitHub Desktop, sehen wir nach dem Aktivieren des Bereichs <b>Changes <\/b>die Liste aller hinzugef&uuml;gten und somit ge&auml;nderten Elemente.<\/p>\n<p>Nun wird es Zeit f&uuml;r einen ersten selbst angesto&szlig;enen Commit. Damit wird der aktuelle Stand ins Repository geschrieben. Den Commit f&uuml;hren wir aus, indem wir einen aussagekr&auml;ftigen Text in das Feld <b>Summary <\/b>schreiben und gegebenenfalls noch das Feld <b>Description <\/b>f&uuml;llen.<\/p>\n<p>Dann klicken wir auf die Schaltfl&auml;che <b>Commit to main<\/b> (siehe Bild 26).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_026.png\" alt=\"Erstes Commit\" width=\"700\" height=\"481,2498\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 26: Erstes Commit<\/span><\/b><\/p>\n<p>Danach zeigt GitHub Desktop unter <b>Changes<\/b> wieder eine leere Liste an. Warum das? Weil es seit dem letzten Commit keine &Auml;nderungen gab. Erst wenn wir eine der im Verzeichnis enthaltenen Dateien &auml;ndern, wird diese hier vermerkt. Haben wir durch mehrere &Auml;nderungen einen relevanten Stand erreicht, k&ouml;nnen wir ein neues Commit durchf&uuml;hren. Wann man ein Commit durchf&uuml;hrt, kann man selbst entscheiden.<\/p>\n<p>Warum aber sollte man &uuml;berhaupt Commits durchf&uuml;hren? Ein wichtiger Punkt ist, dass wir damit einen Zwischenstand speichern, den wir zu jeder Zeit wieder herstellen k&ouml;nnen. Damit erm&ouml;glichen wir uns auch, die Datenbank aus einem solchen Zwischenstand wiederherzustellen.<\/p>\n<h2>Die Optionen von Access VCS Add-In<\/h2>\n<p>Der Vollst&auml;ndigkeit halber schauen wir uns noch die wichtigsten Optionen des Add-Ins an, die wir mit dem Ribbon-Befehl <b>View Options <\/b>einblenden. Auf der ersten Seite <b>General <\/b>zeigt das Tool folgende Optionen an (siehe Bild 27):<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_027.png\" alt=\"Allgemeine Optionen\" width=\"549,559\" height=\"418,2844\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 27: Allgemeine Optionen<\/span><\/b><\/p>\n<ul>\n<li><b>Show Detailed Output<\/b>: Stellt den Detailgrad der Ausgabe ein.<\/li>\n<li><b>Debug VBA Errors<\/b>: Legt fest, ob bei unerwarteten Fehlern im Add-In da Debuggen des Add-In-Codes erm&ouml;glicht werden soll.<\/li>\n<li><b>Diff Tool<\/b>: Gibt an, welches Tool zum Ermitteln von Unterschiedenen zwischen zwei Versionen verwendet werden soll.<\/li>\n<li><b>Hash Algorithm<\/b>: Um schnell zu pr&uuml;fen, ob es Unterschiede zwischen zwei Dateien gibt, wird ein Hash gebildet und dieser verglichen. Hier w&auml;hlen wir aus, welcher Algorithmus dazu verwendet werden soll.<\/li>\n<\/ul>\n<h2>Export-Optionen<\/h2>\n<p>Die zweite Seite zeigt die Export-Optionen des Tools an (siehe Bild 28). Hier finden wir die folgenden Einstellungen:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_028.png\" alt=\"Export-Optionen\" width=\"549,559\" height=\"418,2844\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 28: Export-Optionen<\/span><\/b><\/p>\n<ul>\n<li><b>Export Folder<\/b>: Legt fest, welcher Ordner f&uuml;r den Export verwendet werden soll. Standardm&auml;&szlig;ig ist dieses Feld leer. Dann wird ein Ordner im Verzeichnis der Datenbank verwendet.<\/li>\n<li><b>Extract Theme Files<\/b>: Sorgt daf&uuml;r, dass nur ge&auml;nderte Elemente exportiert werden.<\/li>\n<li><b>Save Printer Settings<\/b>: Exportiert Druckoptionen f&uuml;r Formulare und Berichte im <b>.json<\/b>-Format.<\/li>\n<li><b>Save Query SQL<\/b>: Exportiert zus&auml;tzlich zu den Abfragedefinitionen den reinen SQL-Code der Abfragen.<\/li>\n<li><b>Save Table SQL<\/b>: Exportiert den SQL-Code, der zum Erstellen der Tabelle notwendig w&auml;re.<\/li>\n<li><b>Format SQL<\/b>: Formatiert den SQL-Code.<\/li>\n<li><b>Split Layout from VBA<\/b>: Exportiert die Module von Formularen und Berichten separat.<\/li>\n<li><b>Run Sub Before Export<\/b>: Gibt eine Prozedur an, die vor dem Exportieren der Elemente aufgerufen wird. Mit dieser Prozedur k&ouml;nnen wir verschiedene Aktionen ausf&uuml;hren wie Aufr&auml;umarbeiten et cetera.<\/li>\n<li><b>Run Sub After Export<\/b>: Diese Prozedur wird nach dem Export aufgerufen. Hier k&ouml;nnen wir beispielsweise die mit der in <b>Run Sub Before Export <\/b>durchgef&uuml;hrten Aufr&auml;umarbeiten r&uuml;ckg&auml;ngig machen.<\/li>\n<\/ul>\n<h2>Optionen f&uuml;r den Export von Tabellendaten<\/h2>\n<p>&Uuml;blicherweise verwenden wir die Versionsverwaltung w&auml;hrend der Entwicklung der Datenbank. Das hei&szlig;t, dass wir die Daten der Tabellen nicht unbedingt mit versionieren. Wenn wir jedoch sicherstellen wollen, dass wir nach dem Exportieren und dem Erstellen einer neuen Datenbank auf Basis des Exports eine funktionsf&auml;hige Anwendung erhalten, ist das Exportieren der Daten bestimmter Tabellen manchmal notwendig. In Fall aus Bild 29 wollen wir zum Beispiel die Daten der Tabelle <b>MSysResources<\/b> mit exportieren. Diese Tabelle speichert neben dem Design-Theme der Datenbankanwendung gegebenenfalls auch Bilddateien, die in den Formularen und Berichten angezeigt werden sollen oder die f&uuml;r das Ribbon oder f&uuml;r Kontextmen&uuml;s verwendet werden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_029.png\" alt=\"Optionen f&uuml;r Tabellendaten\" width=\"549,559\" height=\"418,2844\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 29: Optionen f&uuml;r Tabellendaten<\/span><\/b><\/p>\n<p>Also sollten wir diese Daten auf jeden Fall mit ins Repository exportieren.<\/p>\n<p>Tabellen, die exportiert werden sollen, erkennen wir an dem Eintrag in der Spalte <b>Export As<\/b>. Hier steht entweder <b>XML Format <\/b>oder <b>Tab Delimited<\/b>.<\/p>\n<h2>Optionen zum Wiederherstellen einer Anwendung aus den Quelldateien<\/h2>\n<p>Die Seite aus Bild 30 enth&auml;lt Einstellungen, die beim Wiederherstellen einer Anwendung aus den Quelldateien verwendet werden:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_030.png\" alt=\"Optionen f&uuml;r das Wiederherstellen aus der Versionsverwaltung\" width=\"599,559\" height=\"456,3408\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 30: Optionen f&uuml;r das Wiederherstellen aus der Versionsverwaltung<\/span><\/b><\/p>\n<ul>\n<li><b>Force import of original SQL for queries<\/b>: Wenn die Abfragen zus&auml;tzlich als SQL gespeichert wurden, k&ouml;nnen diese aus dem gespeicherten SQL-Code wiederhergestellt werden.<\/li>\n<li><b>Run Sub Before Build<\/b>: Erwartet den Namen des Moduls und der Prozedur, die vor dem Wiederherstellen aus den Quelldateien aufgerufen werden soll, im Format <b>[Modulname].[Prozedurname]<\/b>.<\/li>\n<li><b>Run Sub After Build<\/b>: Erwartet den Namen einer Prozedur, die nach dem Wiederherstellen aufgerufen werden soll.<\/li>\n<\/ul>\n<h2>Einstellungen f&uuml;r die Optionen<\/h2>\n<p>Es gibt noch ein paar Einstellungen, welche die Optionen selbst betreffen. Auf der Seite <b>Settings<\/b> aus Bild 31 k&ouml;nnen wir aktuellen Einstellungen als Standard f&uuml;r neue Projekte sichern und diese wiederherstellen. Au&szlig;erdem k&ouml;nnen wir alle Einstellungen zur&uuml;cksetzen. Schlie&szlig;lich k&ouml;nnen wir hier noch den Installationsordner des Access VCS Add-Ins &ouml;ffnen und dieses deinstallieren.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_031.png\" alt=\"Einstellungen f&uuml;r die Optionen und mehr\" width=\"599,559\" height=\"456,3408\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 31: Einstellungen f&uuml;r die Optionen und mehr<\/span><\/b><\/p>\n<h2>Datenbank aus Repository wiederherstellen<\/h2>\n<p>Was n&uuml;tzt das Sichern der Datenbankelemente in Textdateien, wenn wir diese nicht zum Wiederherstellen nutzen? Oder wenn wir vielleicht sogar im Team an einer Access-Anwendung programmieren, m&ouml;chten wir die &Auml;nderungen der anderen Entwickler in unsere Datenbank &uuml;bernehmen. Wie die anderen Entwickler auf ein gemeinsames Repository zugreifen k&ouml;nnen, wird gegebenenfalls Thema eines weiteren Beitrags.<\/p>\n<p>Im beiden F&auml;llen wollen wir den aktuell im Quellverzeichnis gespeicherten Stand wiederherstellen. Dazu &ouml;ffnen wir die Anwendung und rufen den Ribbonbefehl <b>Build From Source <\/b>auf (siehe Bild 32).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_036.png\" alt=\"Wiederherstellen einer Datenbank aus der exportierten Version\" width=\"424,5589\" height=\"210,781\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 32: Wiederherstellen einer Datenbank aus der exportierten Version<\/span><\/b><\/p>\n<p>Dies ruft eine Meldung hervor, die anzeigt, aus welchem Verzeichnis die Datenbank wiederhergestellt werden soll (siehe Bild 33). Mit einem Klick auf <b>Nein <\/b>k&ouml;nnen wir einen Dateiauswahl-Dialog &ouml;ffnen, um ein anderes Quellverzeichnis auszuw&auml;hlen. Best&auml;tigen wir hier mit <b>Ja<\/b>, wird eine Sicherheitskopie der aktuellen Datenbank angefertigt und eine neue Datenbank erstellt, die mit den Elementen aus dem Export gef&uuml;llt wird.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_1495_035.png\" alt=\"Meldung vor dem Wiederherstellen aus dem Repository\" width=\"700\" height=\"180,4932\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 33: Meldung vor dem Wiederherstellen aus dem Repository<\/span><\/b><\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Dieser Beitrag zeigt, wie man mit dem <b>Version Control Add-In <\/b>die Elemente seiner Datenbankanwendung und auch Einstellungen die Access-Optionen der aktuellen Datenbank oder die Verweise des VBA-Projekts in Textdateien exportieren kann. Dies er&ouml;ffnet verschiedene M&ouml;glichkeiten. Man kann diese einfach wiederherstellen. Oder man verwendet zus&auml;tzlich das Tool <b>GitHub Desktop<\/b>, mit dem wir verschiedene St&auml;nde der exportierten Dateien verwalten, Unterschiede anzeigen und einen beliebigen zwischenzeitlich gespeicherten Zustand in einer Access-Datenbank wiederherstellen k&ouml;nnen.<\/p>\n<p>In einem weiteren Beitrag namens <b>Datenbanken vergleichen mit GitHub Desktop <\/b>(<b>www.access-im-unternehmen.de\/1502<\/b>) zeigen wir, wie man die Kombination aus <b>Version Control Add-In <\/b>und <b>GitHup Desktop <\/b>nutzen kann, um verschiedene Versionen einer <b>.accdb<\/b>-Datenbank miteinander zu vergleichen. Damit finden wir beispielsweise heraus, welche Unterschiede zwischen den beiden Datenbanken bestehen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es gibt verschiedene Systeme, mit denen wir die Objekte aus Access extrahieren und unter eine Versionsverwaltung stellen k&ouml;nnen. In diesem Beitrag stellen wir eine Kombination aus dem kostenlosen Tool &#8222;Version Control Add-In&#8220; und &#8222;GitHub Desktop&#8220; vor. Dabei zeigen wir, wie die notwendige Komponente zu Access hinzugef&uuml;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.<\/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":[662024,66032024,44000025],"tags":[],"class_list":["post-55001495","post","type-post","status-publish","format-standard","hentry","category-662024","category-66032024","category-VBA_und_Programmiertechniken"],"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>Access-Quellcodeverwaltung mit GitHub Desktop - 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\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Access-Quellcodeverwaltung mit GitHub Desktop\" \/>\n<meta property=\"og:description\" content=\"Es gibt verschiedene Systeme, mit denen wir die Objekte aus Access extrahieren und unter eine Versionsverwaltung stellen k&ouml;nnen. In diesem Beitrag stellen wir eine Kombination aus dem kostenlosen Tool &quot;Version Control Add-In&quot; und &quot;GitHub Desktop&quot; vor. Dabei zeigen wir, wie die notwendige Komponente zu Access hinzugef&uuml;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.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-16T17:12:39+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg02.met.vgwort.de\/na\/e4e774afc38d4d179a5a96cc4525d38e\" \/>\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=\"17\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Access-Quellcodeverwaltung mit GitHub Desktop\",\"datePublished\":\"2026-01-16T17:12:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/\"},\"wordCount\":3425,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/e4e774afc38d4d179a5a96cc4525d38e\",\"articleSection\":[\"2024\",\"3\\\/2024\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/\",\"name\":\"Access-Quellcodeverwaltung mit GitHub Desktop - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/e4e774afc38d4d179a5a96cc4525d38e\",\"datePublished\":\"2026-01-16T17:12:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/e4e774afc38d4d179a5a96cc4525d38e\",\"contentUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/e4e774afc38d4d179a5a96cc4525d38e\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Access-Quellcodeverwaltung mit GitHub Desktop\"}]},{\"@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":"Access-Quellcodeverwaltung mit GitHub Desktop - 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\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/","og_locale":"de_DE","og_type":"article","og_title":"Access-Quellcodeverwaltung mit GitHub Desktop","og_description":"Es gibt verschiedene Systeme, mit denen wir die Objekte aus Access extrahieren und unter eine Versionsverwaltung stellen k&ouml;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&uuml;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.","og_url":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/","og_site_name":"Access im Unternehmen","article_published_time":"2026-01-16T17:12:39+00:00","og_image":[{"url":"http:\/\/vg02.met.vgwort.de\/na\/e4e774afc38d4d179a5a96cc4525d38e","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"17\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Access-Quellcodeverwaltung mit GitHub Desktop","datePublished":"2026-01-16T17:12:39+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/"},"wordCount":3425,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/e4e774afc38d4d179a5a96cc4525d38e","articleSection":["2024","3\/2024","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/","url":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/","name":"Access-Quellcodeverwaltung mit GitHub Desktop - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/e4e774afc38d4d179a5a96cc4525d38e","datePublished":"2026-01-16T17:12:39+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/#primaryimage","url":"http:\/\/vg02.met.vgwort.de\/na\/e4e774afc38d4d179a5a96cc4525d38e","contentUrl":"http:\/\/vg02.met.vgwort.de\/na\/e4e774afc38d4d179a5a96cc4525d38e"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/AccessQuellcodeverwaltung_mit_GitHub_Desktop\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Access-Quellcodeverwaltung mit GitHub Desktop"}]},{"@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\/55001495","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=55001495"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001495\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}