# Microsoft Access

Microsoft Access [ˈmaɪ.kɹoʊ.sɒft ˈæk.sɛs] (kurz MS Access, nach englisch access ‚Zugang‘) ist eine Anwendung innerhalb der Microsoft-Office-Familie (Microsoft 365) und ist als einzelne Büroanwendung oder als Bestandteil von Office Professional (Office-Paket) erhältlich.
Access kombiniert die Microsoft Jet Engine als relationales Datenbankmanagementsystem mit den Werkzeugen einer integrierten Entwicklungsumgebung, die mit ihren grafischen Benutzeroberflächen insbesondere für die Zielgruppe Endbenutzer zur Herstellung von Datenbankanwendungen geeignet ist.
Access unterstützt (mit Einschränkungen) die Datenbank-Programmiersprache SQL ab Version 2007.

## Entstehung

Der Erfolg von Desktop-Datenbankanwendungen wie dBASE und Foxpro veranlasste Microsoft schon Mitte der 1980er Jahre zu der Entscheidung, eine eigene Datenbankanwendung für das damals neue Betriebssystem Windows zu entwickeln. Die Entwicklungsarbeiten unter dem Projektnamen Omega verzögerten sich immer wieder, bis Anfang der 1990er Jahre die noch fehlerhafte Version 1.0 und kurz darauf die stabile Version 1.1 auf den Markt kam.

## Eigenschaften

Standardmäßig speichert Access alle Daten einer Datenbankanwendung in einer einzigen Datei des eigenen mdb-Dateiformates (bis zur Version Access 2003) bzw. des accdb-Dateiformates (ab Version Access 2007) ab. Dieses schließt sowohl Elemente der Oberfläche als auch die Datenbanktabellen ein. Alternativ ist es sehr einfach möglich, die Daten (Tabellendefinitionen und den Datenbestand) im Unterschied zur Oberfläche (und weiteren VisualBasic-Modulen und Makros, Reports usw.) in verschiedenen Dateien zu halten (Front- bzw. Backend). Beim Einbinden bzw. Verknüpfen von externen Datenquellen (Tabellen) können verschiedene Access-Versionen, aber auch Access-fremde Formate wie dBASE, sowie viele gängige Datenquellen z. B. über ODBC angesprochen werden.
Im Gegensatz zu früheren PC-basierenden Datenbanksystemen unterstützt Access ein relationales Datenbank-Modell mit referentiellen Integritätsprüfungen. Um extern auf Access-Datenbanken zuzugreifen, eignet sich unter anderem die ebenfalls von Microsoft entwickelte ODBC-Programmierschnittstelle. Ferner kann auf Access-Datenbanken auch von anderen Programmiersprachen, zum Beispiel Delphi, Visual Basic etc. durch den Einsatz von ADO oder dem etwas älteren, aber auf MDBs zugeschnittene DAO zugegriffen werden. Um lediglich dieses Format einzubinden, braucht Access weder lizenziert noch installiert zu sein. Ab Windows 2000 ist ADO als Teil von MDAC ein Bestandteil des Betriebssystems. Für frühere Windowsversionen kann es kostenfrei nachinstalliert werden.
Access, das auf der Microsoft Jet Engine als Datenbank-Backend basiert, eignet sich gut für kleinere bis mittlere Datenbanken bei (etwa) bis zu zehn gleichzeitig zugreifenden Benutzern. Darüber hinaus empfiehlt Microsoft die recht einfache Migration zum MS-SQL-Server. Um den Mehrbenutzerzugriff innerhalb des mdb-Dateiformats einfach zu gestalten, erfolgen Schreibzugriffe bei älteren Versionen einer Access-mdb-Datenbank immer am Dateiende. Gelöschte oder abgeänderte Elemente blieben daher als „Löcher“ in der Datei stehen, bis die Access-Datei komprimiert (im engeren Sinne ist es ein Defragmentieren der Datenbankdatei selbst) wird. Bei neueren Versionen ist ein regelmäßiges Komprimieren nicht mehr erforderlich.
Der Betrieb von Access-Anwendungen im LAN ist an eine stabile Netzwerkumgebung gebunden. Bereits kleine Aussetzer können die Verbindung zum Backend abreißen lassen. Access bleibt dabei meist stabil, lediglich die betroffenen Anwender müssen ihre Datenbankapplikation neu starten. Bei stabiler Hardware und Netzwerk wird nur in seltenen Fällen eine Reorganisation (Reparatur und Komprimierung) der Datenbank erforderlich. Access ist mit seinem mdb-Dateiformat im Vergleich zu anderen dateibasierten Datenbanken stabil, wenngleich klassische SQL-Server üblicherweise weit stabiler sind. In der Praxis sind in standardmäßig eingerichteten Netzwerken, zum Beispiel auf Ethernet-Basis, keine Probleme zu erwarten.
Für den Einsatz in heterogenen Netzwerken oder im WLAN ist Access allerdings – wie alle dateibasierenden (statusgebundenen) Zugriffsverfahren, die konkurrierend über das Dateisystem erfolgen – weniger geeignet, hier sollten Datenbankserver (DB2-Server, MS-SQL-Server, MySQL-Server usw.) bevorzugt werden.
Um diese Schwächen zu überwinden, basiert der Datenbankzugriff von Access schon seit den ersten Versionen auf einer SQL-Engine, die eine einfache Migration zu einem SQL-Server ermöglicht. Dazu wurde Access ab der Version 2000 so erweitert, dass Anwendungen direkt auf eine große Datenbank, die zum Beispiel auf einem Microsoft SQL Server betrieben wird, aufgebaut werden können, anstatt sie über ODBC einzubinden. Für diesen Zweck wurde ein neues Dateiformat mit der Endung .adp entwickelt und der Dateizugriff von DAO (Data Access Objects) auf das vielseitigere ADO (Active Data Objects) umgestellt. ADO abstrahiert wesentlich stärker von den verwendeten Datenbankquellen als sein Vorgänger und hat daher eine höhere Zugriffsgeschwindigkeit. Die Endung .adp wird seit Access 2013 nicht mehr unterstützt.
Mit Access wird ab Version 2000 eine kostenfreie Desktop-Version des Microsoft SQL Server ausgeliefert, die sich direkt über die Access-Oberfläche verwalten lässt. Allerdings sind die Verwaltungsmöglichkeiten der SQL-Server-basierten Funktionen (z. B. Berechtigungen) im Vergleich zur Vollversion stark eingeschränkt, weswegen für größere Projekte die Verwendung des MSSQL-Servers zweckmäßig ist. Seit SQL Server 2005 trifft dies aber nur noch bedingt zu, da mit dieser Version das Management Studio Express kostenlos mitangeboten wird.
Durch die Bereitstellung von visuellen Programmierobjekten, die speziell im Hinblick auf den Datenbankzugriff optimiert sind, ist es mit Access möglich, innerhalb von kurzer Zeit datenbankbasierte Anwendungen zu erstellen (Rapid Prototyping), ohne umfangreiche Programmierarbeiten (wie sie z. B. in C oder C++ notwendig sind) durchführen zu müssen. Dabei ist es möglich, auch auf Skripte zurückzugreifen, die in einer speziellen Makro-Sprache erstellt wurden. Um auch komplexe Anwendungen erstellen zu können, ist in Access eine Entwicklungsumgebung für Visual Basic for Applications (VBA) integriert. Zur Verbesserung der Geschwindigkeit der Programmausführung kann der auf Basis von VBA erstellte Quelltext kompiliert und als optimierter Programmcode, auch „P-Code“ genannt (von „Pseudocode“ abgeleitet, hier jedoch andere Bedeutung) in der Datenbankdatei (identisch wie in der *.MDE) gespeichert werden.
Zur Weitergabe entwickelter Datenbanken an Benutzer, die kein Access besitzen, gibt es die Runtime-Versionen. Diese werden mit der Office Developer Edition erstellt, die je nach Access-Version kostenfrei oder kostenpflichtig ist.
Die neuste Version Microsoft Access 2024 bietet bedeutende Neuerungen, darunter einen Dataverse-Connector für die Cloud-Integration, ein Edge-Browser-Steuerelement zur Einbettung von Webinhalten und erweiterten Speicherzugriff für große Datenbanken. Verbesserte Sicherheitsfunktionen wie digitale Signaturen für VBA-Code und die Möglichkeit, SQL-Abfragen direkt auszuführen, erhöhen die Effizienz. Zudem wurden die Kapazitätsgrenzen erheblich erweitert, um bis zu 4.096 geöffnete Tabellen und 512 aktive Verbindungen zu unterstützen. Microsoft 2024 bringt einen fünfjährigen Support-Zeitraum mit.

## Objektarten

Zur Erstellung einer Datenbank werden vom Entwickler mehrere Objektarten erstellt:
* Tabellen zur Speicherung der Daten
* Abfragen zur Aufbereitung (Filterung, Sortierung usw.) der Daten
* Formulare zur Dateneingabe per Bildschirmmaske
* Berichte zur Ausgabe der Daten auf dem Bildschirm oder an einen Drucker
* Makros zur einfachen Automation
* Visual Basic Module zur individuellen Programmierung in Visual Basic for Applications (VBA)
* Import- und Exportspezifikationen für formale Angaben beim Datenimport oder -Export (z. B. für CSV-Dateien) Unterstützung
* Beziehungen zwischen Tabellen mit Angaben über Integritätsbedingungen
Die Daten über diese Objekte („Metadaten“) sind in sogenannten ‚Systemtabellen‘ gespeichert. Dies sind Tabellen, die Access in derselben Datenbank wie die zu speichernden Daten führt; sie sind jedoch im Regelfall für den Benutzer nicht sichtbar.

## Produktversionen

* Access 1.0: (First Windows relational database) (for Windows 3.0)
* Access 2: „Access Developer’s Toolkit“ (ADT) für Access2
* Access 95: „Access Developer’s Toolkit“ (ADT) für Access95
* Access 97: „Office Developer’s Edition“ (ODE)
* Access 2000: „Microsoft Office Developer“ (MOD)
* Access 2002: (XML Support)
* Access 2003: „Access 2003 Developer Extensions“ (u. a. Windows-XP-Themen)
* Access 2007
* Access 2010
* Access 2013
* Access 2016
* Access 2019 Teil von Microsoft 365, jedoch (im Gegensatz zu den anderen Office-Programmen Word, Excel und PowerPoint, die auch für das Betriebssystem Mac OS X von Apple angeboten werden) nur für Windows verfügbar
* Access 2021 Teil von Microsoft 365, wie Access 2019 nur für Windows verfügbar.
* Access 2024 Teil von Microsoft 365, wie Access 2021 mit neuen Funktion Access Dataverse Connector
Angaben zum Datum des jeweiligen Releases, weitere Update-Versionen und inhaltliche Hinweise zu Erweiterungen finden sich auf der entsprechenden Webseite von Microsoft.

## Ähnliche Produkte

* LibreOffice Base (auf mehreren Plattformen verfügbar)
* OpenOffice.org Base (auf mehreren Plattformen verfügbar)
* Aqua Data Studio für Windows
* Kexi als Teil des freien Office-Paketes Calligra Suite