Wenn Sie eine neue Datenbank erstellen, beginnen Sie in der Regel damit, Datenbankobjekte wie Tabellen, Formulare und Berichte zu erstellen. Irgendwann müssen Sie möglicherweise Programmierung hinzufügen, um Prozesse zu automatisieren und diese Objekte zu verbinden. In diesem Artikel werden die Programmiertools in Access vorgestellt.
Inhalt dieses Artikels
- Was ist Programmieren?
- Soll ich Makros oder VBA-Code verwenden?
- Verwenden des Befehlsschaltflächen-Assistenten, um häufig vorkommende Aufgaben zu erledigen
- Grundlegendes zu Makros
- Grundlegendes zu VBA-Code
- Konvertieren von Makros in VBA-Code
Was ist Programmieren?
In Access bedeutet Programmierung, dass Ihrer Datenbank Mithilfe von Access-Makros oder Visual Basic for Applications (VBA) -Code Funktionen hinzugefügt werden. Sie können beispielsweise ein Formular und einen Bericht erstellen und dann dem Formular, das den Bericht öffnet, eine Befehlsschaltfläche hinzufügen, wenn Sie ihn auswählen. In diesem Fall erstellen Sie ein Makro oder VBA eine Prozedur und legen dann die Ereigniseigenschaft der OnClick Befehlsschaltfläche fest, damit das Makro oder die Prozedur von der Befehlsschaltfläche ausgeführt wird. Für eine einfache Operation, z. B. das Öffnen eines Berichts, können Sie den Befehlsschaltflächen-Assistenten verwenden, um die Arbeit zu erledigen, oder Sie können den Assistenten deaktivieren und ihn selbst programmieren.
Hinweis
Viele Microsoft Office-Programme verwenden den Begriff "Makro", um auf Code zu VBA verweisen. Dies kann Access-Benutzer verwirren, da sich der Begriff "Makro" in Access auf eine benannte Sammlung von Makroaktionen bezieht, die Sie mithilfe des Makro-Generators zusammenstellen. Zugriffsmakroaktionen stellen nur eine Teilmenge der in VBAverfügbaren Befehle dar. Der Makro-Generator bietet Ihnen eine strukturiertere Schnittstelle als der Visual Basic-Editor, sodass Sie Steuerelementen und Objekten Programmierung hinzufügen können, ohne Code zu lernen VBA . In Access-Hilfeartikeln werden Access-Makros als Makros bezeichnet.
VBA Code wird als Code, eine Funktion oder eine Prozedur bezeichnet VBA .
VBA Code wird in Klassenmodulen gespeichert, die Teil einzelner Formulare oder Berichte sind und in der Regel nur Code für diese Objekte enthalten, und in Modulen, die nicht an bestimmte Objekte gebunden sind und in der Regel globalen Code enthalten, den Sie in der gesamten Datenbank verwenden können.
Objekte wie Formulare und Berichte sowie Steuerelemente wie Befehlsschaltflächen und Textfelder verfügen über Ereigniseigenschaften, an die Sie Makros oder Prozeduren anfügen können. Jede Ereigniseigenschaft ist einem bestimmten Ereignis zugeordnet, z. B. durch Klicken mit der Maus, Öffnen eines Formulars oder Ändern von Daten in einem Textfeld. Ereignisse können auch durch Faktoren außerhalb von Access ausgelöst werden, z. B. Systemereignisse oder durch Makros oder Prozeduren, die an andere Ereignisse angefügt sind. Ihre Datenbank kann komplex werden, wenn Sie vielen Ereigniseigenschaften für viele Objekte viele Makros oder Prozeduren hinzufügen. In den meisten Fällen können Sie jedoch die gewünschten Ergebnisse mit sehr wenig Programmierung erhalten.
Soll ich Makros oder VBA-Code verwenden?
Die Entscheidung, Makros, oder beides zu verwenden, hängt hauptsächlich davon ab, VBAwie Sie die Datenbank bereitstellen oder verteilen möchten. Wenn die Datenbank z. B. auf Ihrem Computer gespeichert ist, Sie der einzige Benutzer sind und Mit der Verwendung von VBA Code vertraut sind, können Sie sich für die meisten Programmieraufgaben entscheiden VBA . Wenn Sie ihre Datenbank jedoch für andere Personen von einem Dateiserver freigeben möchten, sollten Sie die Verwendung VBA aus Sicherheitsgründen vermeiden.
Legen Sie ihre Entscheidung für die Verwendung von Makros oder VBA Code auf zwei Aspekte fest: sicherheit und die gewünschte Funktionalität. Sicherheit ist wichtig, da VBA zum Erstellen von Code verwendet werden kann, der Ihre Daten kompromittiert oder Dateien auf Ihrem Computer beschädigt. Wenn Sie eine Datenbank verwenden, die eine andere Person erstellt hat, aktivieren VBA Sie Code nur, wenn Sie wissen, dass die Datenbank aus einer vertrauenswürdigen Quelle stammt. Wenn Sie eine Datenbank erstellen, die andere Personen verwenden, vermeiden Sie die Einbindung von Programmiertools, die erfordern, dass der Benutzer der Datenbank explizit vertrauen muss. Allgemeine Techniken zum Vermeiden dieser Anforderung werden weiter unten in diesem Abschnitt angezeigt.
Um Ihre Datenbank zu schützen, versuchen Sie, Makros zu verwenden, wenn dies möglich ist, und verwenden VBA Sie sie nur für Vorgänge, die nicht mithilfe von Makroaktionen ausgeführt werden können. Versuchen Sie außerdem, nur Makroaktionen zu verwenden, für die die Datenbank nicht als vertrauenswürdig eingestuft werden muss, bevor sie ausgeführt werden können. Das Einschränken von Makroaktionen auf diese Weise hilft Benutzern, sich sicher zu sein, dass die Datenbank keine Programmierung aufweist, die Daten oder andere Dateien auf ihren Computern beeinträchtigen könnte.
Überlegungen zu Makros
Access enthält viele Makroaktionen, mit denen Sie leistungsfähigere Makros erstellen können, als in früheren Versionen von Access zulässig. Beispielsweise können Sie jetzt mithilfe von Makroaktionen globale temporäre Variablen erstellen und verwenden, und Sie können Fehler dank neuer Makroaktionen zur Fehlerbehandlung ordnungsgemäß verarbeiten. In früheren Versionen von Access waren diese Features nur in VBAverfügbar. Sie können ein Makro auch direkt in die Ereigniseigenschaft eines Objekts oder Steuerelements einbetten. Ein eingebettetes Makro wird Teil des Objekts oder Steuerelements und bleibt dabei, wenn das Objekt oder Steuerelement verschoben oder kopiert wird.
Makros bieten eine einfache Möglichkeit, viele Programmieraufgaben zu verarbeiten, z. B. das Öffnen und Schließen von Formularen und das Ausführen von Berichten. Sie können die Datenbankobjekte, z. B. Formulare und Berichte, die Sie erstellt haben, schnell miteinander verknüpfen, da sie sich nur wenig Syntax merken müssen. Die Argumente für jede Aktion werden im Makro-Generator angezeigt.
Über die gesteigerte Sicherheit und komfortable Bedienung von Makros hinaus ist der Einsatz von Makros für die folgenden Aufgaben erforderlich:
Zuweisen einer Aktion oder einer Reihe von Aktionen zu einer Taste. Dazu muss eine Makrogruppe mit dem Namen erstellt werden
AutoKeys.Ausführen einer Aktion oder einer Reihe von Aktionen beim ursprünglichen Öffnen einer Datenbank. Dazu muss ein Makro mit dem Namen erstellt werden
AutoExec.Hinweis
Das
AutoExecMakro wird vor allen anderen Makros oderVBACode ausgeführt, auch wenn Sie ein Startformular im Dialogfeld Zugriffsoptionen festgelegt und ein Makro oder Code an das des Formulars oderVBAOnLoadereignissesOnOpenangefügt haben.
Weitere Informationen zum Erstellen von Makros finden Sie unter Grundlegendes zu Makros.
VBA-Überlegungen
Verwenden Sie VBA anstelle von Makros, wenn Sie eine der folgenden Aktionen ausführen möchten:
- Verwenden Sie integrierte Funktionen, oder erstellen Sie eigene Funktionen. Access umfasst viele integrierte Funktionen, z
IPmt. B. , mit denen eine Zinszahlung berechnet wird. Sie können diese Funktionen verwenden, um Berechnungen durchzuführen, ohne komplizierte Ausdrücke zu erstellen. Mithilfe vonVBAkönnen Sie auch eigene Funktionen erstellen, um Berechnungen durchzuführen, die über die Funktion eines Ausdrucks hinausgehen oder komplexe Ausdrücke ersetzen. Darüber hinaus können Sie die in Ausdrücken erstellten Funktionen verwenden, um einen gemeinsamen Vorgang auf mehrere Objekte anzuwenden. - Erstellen oder Bearbeiten von Objekten. In den meisten Fällen ist es am einfachsten, ein Objekt in der Entwurfsansicht dieses Objekts zu erstellen und zu ändern. In einigen Situationen empfiehlt es sich jedoch, die Definition eines Objekts im Code zu bearbeiten.
VBAMit können Sie alle Objekte in einer Datenbank sowie die Datenbank selbst bearbeiten. - Ausführen von Aktionen auf Systemebene. Sie können die
RunAppAktion in einem Makro ausführen, um ein anderes Programm wie Microsoft Excel in Access auszuführen, aber Sie können ein Makro nicht verwenden, um viele andere Aufgaben außerhalb von Access auszuführen. Mithilfe vonVBAkönnen Sie überprüfen, ob eine Datei auf dem Computer vorhanden ist, automation oder Dynamic Data Exchange (DDE) verwenden, um mit anderen Microsoft Windows-basierten Programmen wie Excel zu kommunizieren und Funktionen in Windows Dynamic Link Libraries (DLLs) aufzurufen. - Bearbeiten Sie Datensätze einzeln. Mit können
VBASie eine Reihe von Datensätzen einzeln durchlaufen und einen Vorgang für jeden Datensatz ausführen. Im Gegensatz dazu können Makros mit ganzen Datensätzen gleichzeitig verwendet werden.
Verwenden des Befehlsschaltflächen-Assistenten, um häufig vorkommende Aufgaben zu erledigen
Wenn Sie einem Formular eine Befehlsschaltfläche hinzufügen, kann Ihnen der Befehlsschaltflächen-Assistent beim Einstieg in die Programmierung helfen. Der Assistent hilft Ihnen, eine Befehlsschaltfläche zu erstellen, die eine bestimmte Aufgabe ausführt. In einer Access-Datei (.accdb) erstellt der Assistent ein Makro, das in die OnClick -Eigenschaft der Befehlsschaltfläche eingebettet ist. In einer .mdb - oder .adp -Datei erstellt VBA der Assistent Code, da eingebettete Makros in diesen Dateiformaten nicht verfügbar sind. In beiden Fällen können Sie das Makro oder den Code so ändern oder VBA verbessern, dass es Ihren Anforderungen besser entspricht.
Klicken Sie im Navigationsbereich mit der rechten Maustaste auf das Formular, dem Sie die Befehlsschaltfläche hinzufügen möchten, und klicken Sie dann auf Entwurfsansicht.
Klicken Sie auf der Registerkarte Formularentwurf auf den Pfeil nach unten, um den Steuerelementkatalog anzuzeigen, und stellen Sie dann sicher, dass Steuerelement-Assistenten verwenden ausgewählt ist.
Klicken Sie auf der Registerkarte Formularentwurf im Katalog Steuerelemente auf Schaltfläche.
Klicken Sie im Entwurfsbereich des Formulars an die Stelle, an der Sie die Befehlsschaltfläche platzieren möchten. Der Befehlsschaltflächen-Assistent wird gestartet.
Klicken Sie auf der ersten Seite des Assistenten auf jede der Kategorien in der Liste Kategorien, um zu sehen, für die Ausführung welcher Aktionen der Assistent die Befehlsschaltfläche programmieren kann. Wählen Sie in der Liste Aktionen die gewünschte Aktion aus, und klicken Sie dann auf Weiter.
Klicken Sie entweder auf die Option Text oder auf die Option Bild, je nachdem, ob auf der Befehlsschaltfläche Text oder ein Bild angezeigt werden soll.
- Wenn Sie Text anzeigen möchten, können Sie den Text im Feld neben der Option Text bearbeiten.
- Wenn ein Bild angezeigt werden soll, schlägt der Assistent in der Liste ein Bild vor. Wenn Sie ein anderes Bild auswählen möchten, aktivieren Sie das Kontrollkästchen Alle Bilder anzeigen, um eine Liste aller Bilder für Befehlsschaltflächen anzuzeigen, die von Access bereitgestellt werden, oder klicken Sie auf Durchsuchen, um ein Bild von einem anderen Speicherort auszuwählen. Klicken Sie auf Weiter.
Geben Sie einen aussagekräftigen Namen für die Befehlsschaltfläche ein. Dieser Schritt ist optional, und dieser Name wird nicht auf der Befehlsschaltfläche angezeigt. Es empfiehlt sich jedoch, einen aussagekräftigen Namen einzugeben, damit es viel einfacher ist, die Befehlsschaltflächen zu unterscheiden, wenn Sie später auf die Befehlsschaltfläche verweisen müssen, z. B. wenn Sie die Aktivierreihenfolge für Steuerelemente in Ihrem Formular festlegen. Wenn die Befehlsschaltfläche das Formular beispielsweise schließt, können Sie es
cmdCloseoderCommandClosenennen.Klicken Sie auf Fertig stellen. Access platziert die Befehlsschaltfläche auf dem Formular.
Wenn Sie sehen möchten, was der Assistent für Sie programmiert hat, führen Sie die folgenden optionalen Schritte aus:
Wenn das Eigenschaftenblatt noch nicht angezeigt wird, drücken Sie F4 , um es anzuzeigen.
Klicken Sie auf dem Eigenschaftenblatt auf die Registerkarte Ereignis.
Klicken Sie im Eigenschaftenfeld Bei Klick auf die Schaltfläche Erstellen .
Access startet den Makro-Generator und zeigt das Makro an, das vom Assistenten erstellt wurde. Sie können das Makro bei Bedarf bearbeiten. Weitere Informationen finden Sie unter Grundlegendes zu Makros. Wenn Sie fertig sind, klicken Sie auf der Registerkarte Makroentwurf in der Gruppe Schließen auf Schließen , um den Makro-Generator zu schließen. Wenn Access Sie auffordert, die Änderungen zu speichern und die Eigenschaft zu aktualisieren, klicken Sie auf Ja, um die Änderungen zu speichern, oder auf Nein, um die Änderungen zu verwerfen.
Klicken Sie auf der Registerkarte Formularentwurf in der Gruppe Ansichten auf Ansicht und dann auf Formularansicht. Klicken Sie auf die neue Befehlsschaltfläche, um zu überprüfen, ob sie wie erwartet funktioniert.
Grundlegendes zu Makros
Ein Makro ist ein Tool, mit dem Sie Aufgaben automatisieren und Ihren Formularen, Berichten und Steuerelementen Funktionen hinzufügen können. Wenn Sie z. B. einem Formular eine Befehlsschaltfläche hinzufügen, können Sie die Ereigniseigenschaft der Schaltfläche OnClick einem Makro zuordnen, das die Befehle enthält, die die Schaltfläche bei jeder Auswahl ausführen soll.
Es ist hilfreich, sich Access-Makros als eine vereinfachte Programmiersprache vorzustellen, in der Sie Code erstellen, indem Sie eine Liste mit auszuführenden Aktionen aufbauen. Beim Erstellen eines Makros wählen Sie jede Aktion aus einer Dropdownliste aus und setzen anschließend die erforderlichen Informationen für jede Aktion ein. Mit Makros können Sie Formularen, Berichten und Steuerelementen Funktionen hinzufügen, ohne Code in ein Modul schreiben VBA zu müssen. Makros stellen eine Teilmenge der Befehle bereit, die in VBAverfügbar sind, und die meisten Benutzer finden es einfacher, ein Makro zu erstellen als Code zu schreiben VBA .
Sie erstellen Makros mithilfe des Makro-Generators, der in der folgenden Abbildung dargestellt ist.
So zeigen Sie den Makro-Generator an:
- Klicken Sie auf der Registerkarte Erstellen in der Gruppe Makros und Code auf Makro.
Grundlegendes zu VBA-Code
Wie Makros VBA können Sie Ihrer Access-Anwendung Automatisierung und andere Funktionen hinzufügen. Sie können mithilfe von Drittanbietersteuerelementen erweitern VBA und eigene Funktionen und Prozeduren für bestimmte Anforderungen schreiben.
Eine schnelle Möglichkeit, mit VBA zu beginnen, besteht darin, zuerst ein Access-Makro zu erstellen und es dann in Code zu VBA konvertieren. Anweisungen dazu finden Sie unter Konvertieren von Makros in VBA-Code. Dieses Feature erstellt ein neues VBA Modul, das die entsprechenden Vorgänge im Makro ausführt. Außerdem wird der Visual Basic-Editor geöffnet, sodass Sie mit dem Bearbeiten der Prozedur beginnen können. Wenn Sie im Visual Basic-Editor arbeiten, können Sie auf Schlüsselwörter klicken und F1 drücken, um zugriff auf die Entwicklerhilfe zu starten und mehr über die einzelnen Schlüsselwort (keyword) zu erfahren. Anschließend können Sie die Access-Entwicklerhilfe durchsuchen und neue Befehle entdecken, mit denen Sie Ihre gewünschten Programmieraufgaben erledigen können.
Konvertieren von Makros in VBA-Code
Sie können Access verwenden, um Makros automatisch in Module oder Klassenmodule zu VBA konvertieren. Sie können Makros konvertieren, die an ein Formular oder einen Bericht angefügt sind, unabhängig davon, ob sie als separate Objekte oder als eingebettete Makros vorliegen. Sie können auch globale Makros konvertieren, die nicht an ein bestimmtes Formular oder einen bestimmten Bericht angefügt sind.
Konvertieren von Makros, die an ein Formular oder einen Bericht angefügt sind
Dieser Prozess wird in VBA alle Makros konvertiert, auf die von einem Formular oder Bericht oder einem seiner Steuerelemente verwiesen oder darin eingebettet wird, und fügt den VBA Code dem Klassenmodul des Formulars oder Berichts hinzu. Das Klassenmodul wird Teil des Formulars oder Berichts und wird mit dem Formular oder Bericht verschoben, wenn es verschoben oder kopiert wird.
Klicken Sie im Navigationsbereich mit der rechten Maustaste auf das Formular oder den Bericht, und klicken Sie dann auf Entwurfsansicht.
Klicken Sie auf der Registerkarte Formularentwurf in der Gruppe Extras entweder auf Formularmakros in Visual Basic konvertieren oder Auf Berichtsmakros in Visual Basic konvertieren.
Wählen Sie im Dialogfeld Formularmakros konvertieren oder Berichtsmakros konvertieren aus, ob Access den generierten Funktionen Fehlerbehandlungscode hinzufügen soll. Wenn Ihre Makros Kommentare enthalten, wählen Sie auch aus, ob diese Kommentare in den Funktionen enthalten sein sollen. Klicken Sie auf Konvertieren, um fortzufahren. Wenn für das Formular oder den Bericht kein Klassenmodul vorhanden ist, erstellt Access eines und fügt dem Modul für jedes Makro, das dem Formular oder Bericht zugeordnet wurde, eine Prozedur hinzu. Access ändert auch die Ereigniseigenschaften des Formulars oder Berichts, sodass die neuen
VBAProzeduren anstelle der Makros ausgeführt werden.So zeigen Sie den Code an und bearbeiten diesen
VBA:Wenn das Formular oder der Bericht in der Entwurfsansicht noch geöffnet ist, drücken Sie F4 , um es anzuzeigen, wenn das Eigenschaftenblatt noch nicht angezeigt wird.
Klicken Sie auf der Registerkarte Ereignis des Eigenschaftenblatts auf ein beliebiges Eigenschaftenfeld, das anzeigt
[Event Procedure], und klicken Sie dann auf die Schaltfläche Erstellen . Um die Ereigniseigenschaften für ein bestimmtes Steuerelement anzuzeigen, klicken Sie auf das Steuerelement, um es auszuwählen. Um die Ereigniseigenschaften für das gesamte Formular oder den gesamten Bericht anzuzeigen, wählen Sie oben auf dem Eigenschaftenblatt in der Dropdownliste Formular oder Bericht aus.
Access öffnet den Visual Basic-Editor und zeigt die Ereignisprozedur in ihrem Klassenmodul an. Sie können nach oben oder nach unten scrollen, um alle anderen im gleichen Klassenmodul enthaltenen Prozeduren anzuzeigen.
Konvertieren von globalen Makros
Klicken Sie im Navigationsbereich mit der rechten Maustaste auf das Makro, das Sie konvertieren möchten, und klicken Sie dann auf Entwurfsansicht.
Klicken Sie auf der Registerkarte Makroentwurf in der Gruppe Extras auf Makros in Visual Basic konvertieren.
Wählen Sie im Dialogfeld Konvertiere Makro die gewünschten Optionen aus, und klicken Sie dann auf Konvertieren. Access konvertiert das Makro und öffnet den Visual Basic-Editor.
So zeigen Sie den Code an und bearbeiten diesen
VBA:- Klicken Sie im Visual Basic-Editor, sollte der Bereich Projektexplorer nicht angezeigt werden, im Menü Ansicht auf Projektexplorer.
- Erweitern Sie die Struktur unter dem Namen der Datenbank, in der Sie arbeiten.
- Doppelklicken Sie unter Module auf das
Converted Macro-<macro name>Modul. Das Modul wird im Visual Basic-Editor geöffnet.
Anfügen einer VBA-Funktion an eine Ereigniseigenschaft
Wenn Sie ein globales Makro in VBAkonvertieren, wird der VBA Code in einem Standardmodul platziert. Im Gegensatz zu einem Klassenmodul ist ein Standardmodul nicht Teil eines Formulars oder Berichts. Wahrscheinlich möchten Sie die Funktion einer Ereigniseigenschaft auf einem Formular, in einem Bericht oder einem Steuerelement zuordnen, damit der Code genau dann und dort ausgeführt wird, wie Sie es wünschen. Zu diesem Zweck können Sie den VBA Code in ein Klassenmodul kopieren und ihn dann einer Ereigniseigenschaft zuordnen, oder Sie können einen speziellen Aufruf von der Ereigniseigenschaft an das Standardmodul senden, indem Sie das folgende Verfahren verwenden.
- Notieren Sie sich den Namen der Funktion im Visual Basic-Editor. Wenn Sie beispielsweise ein Makro mit dem Namen
MyMacrokonvertiert haben, lautetMyMacro()der Funktionsname . - Schließen Sie den Visual Basic-Editor.
- Klicken Sie im Navigationsbereich mit der rechten Maustaste auf das Formular oder den Bericht, dem Bzw. dem Sie die Funktion zuordnen möchten, und klicken Sie dann auf Entwurfsansicht.
- Klicken Sie auf das Steuerelement oder den Abschnitt, dem Sie die Funktion zuordnen möchten.
- Wenn das Eigenschaftenblatt noch nicht angezeigt wird, drücken Sie F4 , um es anzuzeigen.
- Klicken Sie auf der Registerkarte Ereignis des Eigenschaftenblatts auf das Ereigniseigenschaftsfeld, dem Sie die Funktion zuordnen möchten.
- Geben Sie im Eigenschaftenfeld ein Gleichheitszeichen (
=) gefolgt vom Namen der Funktion ein,=MyMacro()z. B. . Achten Sie darauf, die Klammern einzuschließen. - Speichern Sie das Formular oder den Bericht, indem Sie auf der Symbolleiste für den Schnellzugriff auf Speichern klicken.
- Doppelklicken Sie im Navigationsbereich auf das Formular oder den Bericht, und testen Sie es bzw. ihn, um zu überprüfen, ob der Code wie gewünscht ausgeführt wird.
Sie kennen nun die grundlegenden Schritte zum Hinzufügen von VBA Code zu Ihrer Datenbank. In diesem Artikel werden nur die Grundlagen der ersten Schritte beschrieben. Viele hervorragende Nachschlagewerke und Onlineressourcen können Ihnen helfen, Ihre Programmierkenntnisse aufzubauen.
Siehe auch
Erstellen eines Benutzeroberflächenmakros
Ausführen von Access-Makros mithilfe einer Tastenkombination
Automatisieren von Startereignissen mit einem Makro
Erstellen eines Makros, das beim Öffnen einer Datenbank ausgeführt wird