Access speichert alle Datenbanktabellen, Abfragen, Formulare, Berichte, Makros und Module in der Access Jet-Datenbank als einzelne Datei.
Für die Abfrageentwicklung bietet Access einen „Query Designer“, eine grafische Benutzeroberfläche, mit der Benutzer Abfragen ohne Kenntnisse der strukturierten Abfragesprache erstellen können. Im Abfragedesigner können Benutzer die Datenquellen der Abfrage (bei denen es sich um Tabellen oder Abfragen handeln kann)“ anzeigen “ und die zurückgegebenen Felder auswählen, indem sie darauf klicken und sie in das Raster ziehen., Man kann Joins einrichten, indem man auf Felder in Tabellen klickt und sie in Felder in anderen Tabellen zieht. Mit Access können Benutzer den SQL-Code auf Wunsch anzeigen und bearbeiten. Jede Zugriffstabelle, einschließlich verknüpfter Tabellen aus verschiedenen Datenquellen, kann in einer Abfrage verwendet werden.
– Zugang unterstützt auch die Erstellung von „pass-through-Abfragen“. Diese Schnipsel von SQL-Code können externe Datenquellen durch die Verwendung von ODBC-Verbindungen auf dem lokalen Computer adressieren. Auf diese Weise können Benutzer mit Daten interagieren, die außerhalb des Zugriffsprogramms gespeichert sind, ohne verknüpfte Tabellen oder Tabellen zu verwenden.,Benutzer erstellen die Pass-Through-Abfragen mithilfe der SQL-Syntax, die von der externen Datenquelle unterstützt wird.
Bei der Entwicklung von Berichten (in „Entwurfsansicht“) führen Ergänzungen oder Änderungen an Steuerelementen dazu, dass verknüpfte Abfragen im Hintergrund ausgeführt werden und der Designer gezwungen ist, auf die Rückgabe von Datensätzen zu warten, bevor er eine weitere Änderung vornehmen kann. Diese Funktion kann nicht ausgeschaltet werden.
Nicht-Programmierer können die Makrofunktion verwenden, um einfache Aufgaben durch eine Reihe von Dropdown-Auswahlen zu automatisieren., Mit Makros können Benutzer Befehle einfach verketten, z. B. Abfragen ausführen, Daten importieren oder exportieren, Formulare öffnen und schließen, Berichte in der Vorschau anzeigen und drucken usw. Makros unterstützen grundlegende Logik (IF-Bedingungen) und die Möglichkeit, andere Makros aufzurufen. Makros können auch Untermakros enthalten, die Subroutinen ähneln. In Access 2007 enthalten erweiterte Makros Fehlerbehandlung und Unterstützung für temporäre Variablen. Access 2007 führte auch eingebettete Makros ein, die im Wesentlichen Eigenschaften des Ereignisses eines Objekts sind. Dadurch entfällt die Notwendigkeit, Makros als einzelne Objekte zu speichern., Makros waren jedoch in ihrer Funktionalität durch fehlende Programmierschleifen und erweiterte Codierungslogik bis Access 2013 eingeschränkt. Mit signifikanten weiteren Verbesserungen, die in Access 2013 eingeführt wurden, wurden die Funktionen von Makros vollständig mit VBA vergleichbar. Sie machten funktionsreiche webbasierte Anwendungsbereitstellungen über eine stark verbesserte Microsoft SharePoint-Oberfläche und-Tools sowie auf herkömmlichen Windows-Desktops praktisch.
Gemeinsam mit anderen Produkten in der Microsoft Office-Suite ist die andere in Access verwendete Programmiersprache Microsoft VBA. Es ist ähnlich wie Visual Basic 6.,0 (VB6) und Code können in Modulen, Klassen und Code hinter Formularen und Berichten gespeichert werden. Um ein reichhaltigeres, effizienteres und wartbareres Endprodukt mit guter Fehlerbehandlung zu erstellen, werden die meisten professionellen Access-Anwendungen mit der VBA-Programmiersprache und nicht mit Makros entwickelt, es sei denn, die Webbereitstellung ist eine Geschäftsanforderung.,
Um Daten in Tabellen und Abfragen in VBA oder Makros zu bearbeiten, stellt Microsoft zwei Datenbankzugriffsbibliotheken von COM-Komponenten bereit:
- Data Access Objects (DAO) (nur 32-Bit), die in Access und Windows enthalten sind und in Microsoft Access 2007 für das ACCDE-Datenbankformat
- ActiveX Data Objects ActiveX Data Objects (ADO) (sowohl 32-Bit-als auch 64-Bit-Versionen)
sowie DAO und ADO Entwickler können OLE DB und ODBC auch für die Entwicklung nativer C/C++ – Programme für den Zugriff verwenden. Für ADPs und die direkte Manipulation von SQL Server-Daten ist ADO erforderlich., DAO eignet sich am besten für die Verwaltung von Daten in Access/Jet-Datenbanken und ist die einzige Möglichkeit, die komplexen Feldtypen in ACCDB-Tabellen zu bearbeiten.
Im Datenbankcontainer oder Navigationsbereich in Access 2007 und späteren Versionen kategorisiert das System automatisch jedes Objekt nach Typ (z. B. Tabelle, Abfrage, Makro). Viele Access-Entwickler verwenden die Leszynski-Namenskonvention, obwohl dies nicht universell ist; Es ist eine Programmierkonvention, keine DBMS-erzwungene Regel. Dies ist besonders hilfreich in VBA, wo Verweise auf Objektnamen möglicherweise nicht auf den Datentyp hinweisen (z. B. tbl für Tabellen, qry für Abfragen).,
Entwickler stellen Microsoft Access am häufigsten für Einzel-und Arbeitsgruppenprojekte bereit (die Access 97 Speed-Charakterisierung wurde für 32 Benutzer durchgeführt). Seit Access 97 und mit Access 2003 und 2007 haben sich Microsoft Access und Hardware erheblich weiterentwickelt. Datenbanken mit einer Größe von weniger als 1 GB (die jetzt vollständig in den Arbeitsspeicher passen) und 200 gleichzeitigen Benutzern sind gut in den Fähigkeiten von Microsoft Access. Die Leistung hängt natürlich vom Datenbankdesign und den Aufgaben ab. Festplattenintensive Arbeiten wie komplexes Suchen und Abfragen benötigen die meiste Zeit.,
Da Daten aus einer Microsoft Access-Datenbank im RAM zwischengespeichert werden können, kann sich die Verarbeitungsgeschwindigkeit erheblich verbessern, wenn nur ein einzelner Benutzer vorhanden ist oder sich die Daten nicht ändern. In der Vergangenheit führte der Effekt der Paketlatenz auf das Record-Locking-System dazu, dass Access-Datenbanken langsam in einem Virtual Private Network (VPN) oder einem Wide Area Network (WAN) gegen eine Jet-Datenbank ausgeführt wurden. Seit 2010 haben Breitbandanschlüsse dieses Problem gemildert., Die Leistung kann auch verbessert werden, wenn während der gesamten Sitzung eine kontinuierliche Verbindung zur Back-End-Datenbank aufrechterhalten wird, anstatt sie für jeden Tabellenzugriff zu öffnen und zu schließen. Wenn die Leistung der Access-Datenbank über VPN oder WAN leidet, kann ein Client, der das Remotedesktopprotokoll (z. B. Microsoft Terminal Services) verwendet, eine effektive Lösung bieten. Access-Datenbanken, die mit SQL Server oder Access-Datenprojekten verknüpft sind, funktionieren gut über VPNs und WANs.,
Im Juli 2011 hat Microsoft ein intermittierendes Problem mit der Abfrageleistung bei allen Versionen von Access sowie Windows 7 und Windows Server 2008 R2 anerkannt, da sich die Art der Ressourcenverwaltung in neueren Betriebssystemen stark unterscheidet. Dieses Problem hat schwerwiegende Auswirkungen auf die Abfrageleistung von Access 2003 und früher mit dem Jet Database Engine-Code sowie Access 2007 und höher mit der Access Database Engine (ACE). Microsoft hat Hotfixes KB2553029 für Access 2007 und KB2553116 für Access 2010 herausgegeben, behebt das Problem jedoch nicht mit Jet 4.0, da es nicht mehr vom Mainstream unterstützt wird.,
In früheren Versionen von Microsoft Access erforderte die Möglichkeit, Anwendungen zu verteilen, den Kauf des Developer Toolkits; In Access 2007, 2010 und Access 2013 wird die „Runtime Only“-Version als kostenloser Download angeboten, wodurch die Verteilung von gebührenfreien Anwendungen unter Windows XP, Vista, 7 und Windows 8 möglich wird.x.
Split-Datenbank architectureEdit
Microsoft Access-Anwendungen annehmen können, um eine split-Datenbank-Architektur., Die einzelne Datenbank kann in eine separate „Back-End“ – Datei unterteilt werden, die die Datentabellen (die auf einem Dateiserver gemeinsam genutzt werden) und ein „Front-End“ (das die Objekte der Anwendung wie Abfragen, Formulare, Berichte, Makros und Module enthält) enthält. Die“ Front-End “ – Zugriffsanwendung wird auf den Desktop jedes Benutzers verteilt und mit der freigegebenen Datenbank verknüpft. Mit diesem Ansatz hat jeder Benutzer eine Kopie von Microsoft Access (oder der Laufzeitversion) zusammen mit seiner Anwendungsdatenbank auf seinem Computer installiert. Dies reduziert den Netzwerkverkehr, da die Anwendung nicht für jede Verwendung abgerufen wird., Die „Front-End“ – Datenbank kann weiterhin lokale Tabellen zum Speichern der Einstellungen oder temporären Daten eines Benutzers enthalten. Diese split-Datenbank-design ermöglicht auch die Entwicklung der Anwendung unabhängig von den Daten. Ein Nachteil ist, dass Benutzer verschiedene Änderungen an ihrer eigenen lokalen Kopie der Anwendung vornehmen können, was die Verwaltung der Versionskontrolle erschwert. Wenn eine neue Version bereit ist, wird die Front-End-Datenbank ersetzt, ohne die Datendatenbank zu beeinträchtigen. Microsoft Access verfügt über zwei integrierte Dienstprogramme, Database Splitter und Linked Table Manager, um diese Architektur zu vereinfachen.,
Verknüpfte Tabellen in Access verwenden absolute Pfade anstelle relativer Pfade, sodass die Entwicklungsumgebung entweder denselben Pfad wie die Produktionsumgebung haben muss oder eine“ Dynamic-Linker “ – Routine in VBA geschrieben werden kann.
Bei sehr großen Access-Datenbanken kann dies zu Leistungsproblemen führen, und unter diesen Umständen sollte ein SQL-Backend in Betracht gezogen werden. Dies ist weniger ein Problem, wenn die gesamte Datenbank in den Arbeitsspeicher des PCS passt, da Access Daten und Indizes zwischenspeichert.,
Migration zu SQL ServerEdit
Um Zugriffsanwendungen auf Enterprise-oder Weblösungen zu skalieren, besteht eine mögliche Technik darin, auf Microsoft SQL Server oder eine gleichwertige Serverdatenbank zu migrieren. Ein Client-Server-Design reduziert die Wartung erheblich und erhöht die Sicherheit, Verfügbarkeit, Stabilität und Transaktionsprotokollierung.
Access 2000 bis Access 2010 enthielt eine Funktion namens Upsizing Wizard, mit der Benutzer ihre Datenbanken auf Microsoft SQL Server, eine ODBC–Client-Server-Datenbank, aktualisieren konnten., Diese Funktion wurde aus Access 2013 entfernt. Eine zusätzliche Lösung, der SQL Server Migration Assistant for Access (SSMA), steht weiterhin zum kostenlosen Download bei Microsoft zur Verfügung.
Eine Vielzahl von Upgrade-Optionen sind verfügbar. Nach der Migration der Daten und Abfragen auf SQL Server kann die Access-Datenbank mit der SQL-Datenbank verknüpft werden. Bestimmte Datentypen sind jedoch problematisch, insbesondere „Ja / Nein“. In Microsoft Access gibt es drei Zustände für den Datentyp Yes/No (True/False): empty, no/false (Null) und yes/true (-1)., Der entsprechende SQL Server-Datentyp ist binär, mit nur zwei Zuständen, zulässigen Werten, Null und 1. Unabhängig davon ist SQL Server immer noch die einfachste Migration. Das Abrufen von Daten aus verknüpften Tabellen ist nur für die benötigten Datensätze optimiert, aber dieses Szenario funktioniert möglicherweise weniger effizient als das, was sonst für SQL Server optimal wäre. In Fällen, in denen Verknüpfungen mit mehreren Tabellen weiterhin das Kopieren der gesamten Tabelle über das Netzwerk erfordern.,
In früheren Access-Versionen, einschließlich Access 2010, können Datenbanken auch in Access Data Projects (ADP) konvertiert werden, die direkt an eine SQL Server-Datenbank gebunden sind. Diese Funktion wurde aus Access 2013 entfernt. ADP unterstützt die Möglichkeit, SQL Server-Objekte wie Tabellen, Ansichten, gespeicherte Prozeduren und SQL Server-Einschränkungen direkt zu erstellen und zu ändern. Die Ansichten und gespeicherten Prozeduren können den Netzwerkverkehr für Joins mit mehreren Tabellen erheblich reduzieren. SQL Server unterstützt temporäre Tabellen und Links zu anderen Datenquellen außerhalb der einzelnen SQL Server-Datenbank.,
Schließlich werden einige Access-Datenbanken vollständig durch eine andere Technologie ersetzt, z ASP.NET oder Java, sobald die Daten konvertiert sind. Jede Migration kann jedoch einen großen Aufwand erfordern, da die Access SQL-Sprache eine leistungsfähigere Obermenge von Standard-SQL ist. Darüber hinaus werden Access-Anwendungsverfahren, ob VBA und Makros, auf einer relativ höheren Ebene geschrieben als die derzeit verfügbaren Alternativen, die sowohl robust als auch umfassend sind., Beachten Sie, dass die Access-Makrosprache, die ein noch höheres Abstraktionsniveau als VBA ermöglicht, in Access 2010 und erneut in Access 2013 erheblich verbessert wurde.
In vielen Fällen erstellen Entwickler direkte Web-to-Data-Schnittstellen mit ASP.NET, bei gleichzeitiger Beibehaltung wichtiger Geschäftsautomatisierungsprozesse, Verwaltungs-und Berichtsfunktionen, die nicht an alle in Access verteilt werden müssen, damit Informationspersonal sie verwalten kann.
Während alle Zugriffsdaten direkt auf SQL Server migriert werden können, können einige Abfragen nicht erfolgreich migriert werden., In einigen Situationen müssen Sie möglicherweise VBA–Funktionen und benutzerdefinierte Funktionen in T-SQL-oder. NET-Funktionen / – Prozeduren übersetzen. Crossstab-Abfragen können mit dem Befehl PIVOT auf SQL Server migriert werden.