Access 2010 für Windows - Automatisierung - HERDT

Werbung
Access 2010
Ricardo Hernández García
1. Ausgabe, 1. Aktualisierung, Dezember 2011
für Windows
Automatisierung, Programmierung
ACC2010P
4
Access 2010 für Windows - Automatisierung, Programmierung
4
Mit Modulen arbeiten
In diesem Kapitel erfahren Sie
D was unter Modulen zu verstehen ist
D welche Modultypen es gibt
D was Prozeduren sind
Voraussetzungen
D Access-Grundlagen
D Grundlagen der Programmierung
4.1
Module
Beschreibung
Durch die Vorgaben der strukturierten Programmierung entsteht fast automatisch die Situation, dass ganze
Programmierprojekte sich in kleinere Einheiten zerlegen lassen, die dann jeweils einzeln und fast getrennt
vom Gesamtprojekt erstellt werden können.
In Access stehen dazu sogenannte Module zur Verfügung, die sich jeweils eigenständig um einen Teilbereich
der Programmieraufgaben kümmern können. Jedes Modul fungiert dabei wie ein Container, in dem Prozeduren und Funktionen zum gleichen Thema zusammengefasst werden. Die in Modulen enthaltenen
Prozeduren werden dann im Gesamtablauf der Anwendung bei bestimmten Ereignissen aufgerufen, z. B.
durch das Anklicken einer Schaltfläche.
Modultypen in Access
Standardmodul
(globales Modul)
D
D
Ist für die gesamte Datenbank gültig
D
Wird im Navigationsbereich von
Access verwaltet
Enthält Prozeduren, die nicht an ein
bestimmtes Datenbankobjekt
gebunden sind
Modultypen
Standardmodul
Formularmodul
Klassenmodul
Berichtsmodul
Access-Modultypen im Überblick
Klassenmodul
Formularmodul
Berichtsmodul
20
D
D
D
D
D
D
D
Ist mit einem Datenbankobjekt verbunden
Es sind Formular- und Berichtsmodule verfügbar.
Es gibt die Option, eigene Klassen (Datenbankobjekte) zu programmieren.
Klassenmodul für ein Formular
Alle Ereignisprozeduren eines Formulars werden hier erstellt und gespeichert.
Klassenmodul für einen Bericht
Alle Ereignisprozeduren eines Berichts werden hier erstellt und gespeichert.
© HERDT-Verlag
4
Mit Modulen arbeiten
Aufbau eines Moduls
Ein Modul besteht aus zwei Teilen: dem Deklarationsbereich  ganz am Anfang und dem Prozedurbereich .
Im Deklarationsbereich werden allgemeine Einstellungen zum Modul angegeben, die alle Prozeduren des
Moduls beeinflussen. Standardmäßig gibt Access hier z. B. die Anweisung Option Compare Database vor,
die die Sortierreihenfolge von Zeichenketten bestimmt.
Im Prozedurbereich sind alle Prozeduren des Moduls untergebracht.
Deklarationsbereich
Deklarationen

Prozedur 1
Prozedurbereich

Funktion
Prozedur 2
Aufbau eines Moduls im Programmcode
Aufbau eines Moduls im Modell
4.2
Standardmodule
Module im Navigationsbereich

Standardmodule enthalten allgemeine Prozeduren, die nicht mit einem
anderen Objekt verbunden sind und die von jeder beliebigen Stelle innerhalb
Ihrer Datenbank aus ausgeführt werden können. Ein Modul als solches kann
nicht ausgeführt werden.
Access stellt für die Verwaltung der Standardmodule die Kategorie MODULE  im
Navigationsbereich zur Verfügung. Falls diese Kategorie nicht sichtbar sein
sollte, können Sie mit Anklicken der Schaltfläche
z. B. den Befehl ALLE ACCESS-OBJEKTE enthält.
Der Navigationsbereich
 ein Menü öffnen, das
Standardmodul erstellen

f
Wählen Sie im Menüband das Register
ERSTELLEN.
f
Klicken Sie in der Gruppe MAKROS UND
CODE auf die Schaltfläche

.
Access öffnet die VBA-Entwicklungsumgebung
(detaillierte Beschreibung vgl. Kapitel 5) und blendet
ein leeres Code-Fenster  ein, das standardmäßig
die Anweisungen Option Compare Database 
und Option Explicit  enthält. Die zweite
Anweisung erscheint allerdings nur, wenn die
explizite Deklaration von Variablen durch die entsprechende VBA-Option vorher aktiviert worden ist.



Möchten Sie, dass Variablendeklarationen für alle
neuen Module nicht zwingend erforderlich sind,
rufen Sie den Menüpunkt EXTRAS - OPTIONEN auf.
Dort deaktivieren Sie im Register EDITOR das KontrollVBA-Entwicklungsumgebung mit einem neuen Modul
feld VARIABLENDEKLARATION ERFORDERLICH.
© HERDT-Verlag
21
4
Access 2010 für Windows - Automatisierung, Programmierung
Option
Compare
Database
Diese Anweisung legt die Sortierreihenfolge beim Vergleich von Zeichenfolgen fest.
Näheres hierzu finden Sie im VBA-Hilfesystem unter dem Stichwort Option CompareAnweisung. Sie können die Vorgabe beibehalten.
Option
Explicit
Diese Anweisung legt fest, dass Variablen vor ihrer ersten Verwendung deklariert werden
müssen. Dies erleichtert Ihnen den Überblick über die verwendeten Variablen und hilft
Ihnen, Fehler im späteren Programmablauf durch falsch geschriebene Variablennamen zu
vermeiden.
In das Code-Fenster schreiben Sie Ihren Programmtext. Die VBA-Entwicklungsumgebung erleichtert Ihnen
dabei mit vielen Funktionen die Arbeit.
Modul speichern
f
Wählen Sie in der VBA-Entwicklungsumgebung den
Menüpunkt DATEI Datenbankname - SPEICHERN oder
klicken Sie auf die Schaltfläche
Alternative:
STRG
.

S
Das Modul wird zusammen mit allen anderen Modulen
und Formularen in der Datenbankdatei gespeichert.
Beim ersten Speichern erscheint ein Dialogfenster, in
dem Sie den Namen des Moduls eingeben können .
Standardmodul bearbeiten
f
Öffnen Sie im Navigationsbereich von
Access die Kategorie MODULE.
f
Klicken Sie mit der rechten Maustaste
auf das Modul, das Sie bearbeiten
möchten.
f
Wählen Sie den Kontextbefehl
ENTWURFSANSICHT.
oder
f
Klicken Sie doppelt auf das Modul,
das Sie bearbeiten möchten.
Code-Fenster mit geladenem Modul
Access öffnet die VBA-Entwicklungsumgebung und blendet das Code-Fenster mit dem Programmcode des
ausgewählten Moduls ein.
Standardmodul löschen
f
f
Öffnen Sie im Navigationsbereich von Access die Kategorie MODULE.
f
Wählen Sie den Kontextbefehl LÖSCHEN.
Klicken Sie mit der rechten Maustaste auf das Modul, das Sie löschen
möchten.
Alternative:
ENTF
Standardmodul löschen oder exportieren und löschen
22
f
Markieren Sie im Projekt-Explorer der VBA-Entwicklungsumgebung das
Modul, das Sie löschen möchten .
f
Rufen Sie den Kontextmenüpunkt ENTFERNEN VON Modulname auf.

Der Projekt-Explorer
© HERDT-Verlag
4
Mit Modulen arbeiten
Das abgebildete Dialogfenster erscheint. Wählen Sie NEIN, um
das Modul sofort zu löschen, oder JA, um das Modul in einer
Datei zu speichern (exportieren) und dann aus dem Projekt
zu löschen.
Als Dateiformat wird eine ganz normale Textdatei mit dem
Kürzel *.bas als Dateinamenserweiterung verwendet. Solche
Abfrage vor dem Entfernen
Dateien können jederzeit in Access-Projekte importiert
werden und stehen dann wieder als Module zur Verfügung.
Standardmodul exportieren
f
f
Öffnen Sie das Modul, das Sie exportieren möchten, zum Bearbeiten im Entwurfsmodus.
In der VBA-Entwicklungsumgebung wählen Sie den Menüpunkt DATEI - DATEI EXPORTIEREN.
Alternative: STRG E
Access öffnet das Fenster DATEI EXPORTIEREN.
f
Wählen Sie einen Dateinamen und ein Verzeichnis, um die Datei zu speichern, und bestätigen Sie die Auswahl mit OK.
Access speichert das Modul in einer Textdatei mit der Endung *.bas für BASIC-Dateien,
analog zum Vorgehen beim Löschen eines Moduls.
Standardmodul kopieren
f
f
f
Öffnen Sie im Navigationsbereich von Access die Kategorie MODULE.
Klicken Sie mit der rechten Maustaste auf das Modul, das Sie kopieren möchten.
Wählen Sie den Kontextbefehl KOPIEREN.
Alternativen:
f
STRG
C
oder Schaltfläche KOPIEREN (Register START, Gruppe ZWISCHENABLAGE)
Wählen Sie den Kontextbefehl EINFÜGEN.
Alternativen: STRG V oder Schaltfläche EINFÜGEN (Register START, Gruppe ZWISCHENABLAGE)
Access fordert Sie in einem Fenster auf, einen Namen für die Kopie einzugeben.
f
4.3
Geben Sie einen Namen ein und bestätigen Sie mit OK.
Formular- und Berichtsmodule
Formular- oder Berichtsmodul bearbeiten
Jedem Formular und Bericht ist ein Klassenmodul zugeordnet. Dieses Klassenmodul wird Formular- oder
Berichtsmodul genannt. In Formular- und Berichtsmodulen sind die Prozeduren zusammengefasst, die das
betreffende Datenbankobjekt direkt betreffen. Meistens sollen diese Prozeduren auf bestimmte Vorgänge im
Formular oder Bericht reagieren, wie den Klick auf eine Schaltfläche oder das Öffnen eines Berichts.
Access erstellt Formular- und Berichtsmodule automatisch, wenn Sie eine Ereignisprozedur für das Formular
oder den Bericht erstellen. Den Namen für diese Module legt Access dabei selbst fest:
D
Der Name eines Formularmoduls setzt sich immer aus dem Text Form_ und dem Namen des Formulars
zusammen, zum Beispiel Form_Mitarbeiter.
D
Der Name eines Berichtsmoduls beginnt stets mit Report_. Danach folgt der Name des Berichts, zum
Beispiel Report_Stundennachweis.
f
f
Öffnen Sie das betreffende Formular oder den Bericht in der Entwurfsansicht.
f
Klicken Sie in der Gruppe TOOLS auf die Schaltfläche CODE ANZEIGEN
Wählen Sie im Menüband das Register ENTWURF  der FORMULAR- bzw. BERICHTSLAYOUTTOOLS.
© HERDT-Verlag
.
23
4
Access 2010 für Windows - Automatisierung, Programmierung


Vom Entwurf zum Quellcode
Access öffnet die VBA-Entwicklungsumgebung und stellt im Code-Fenster den Quellcode des entsprechenden
Formular- oder Berichtsmoduls zur Bearbeitung bereit.
Formular- oder Berichtsmodul löschen
Im Normalfall bilden ein Formular oder ein Bericht im Vordergrund und das entsprechende Modul im Hintergrund ein Paar aus zwei zwar zusammengehörenden, aber doch eigenständigen Objekten.
Für den Fall, dass es Formulare oder Berichte gibt,
für die keinerlei Programmiercode notwendig ist,
ist es möglich, ein Modul zu löschen. Ein erwähnenswerter Vorteil dieser Vorgehensweise ist, dass
das Öffnen der Vordergrundobjekte, z. B. eines
Formulars, erheblich schneller vor sich geht.
f
Öffnen Sie das betreffende Formular
oder den Bericht im Entwurfsmodus.
f
Klicken Sie doppelt auf den Formularoder Berichtsmarkierer  in der linken
oberen Ecke.
f
Das Fenster mit der Liste der Eigenschaften des Formulars oder Berichts
wird geöffnet.
Alternative: Kontextmenüpunkt
EIGENSCHAFTEN
f
Wählen Sie im Eigenschaftenfenster
das Register ANDERE.
f
Im Listenfeld  der Eigenschaft ENTHÄLT MODUL wählen Sie den Eintrag
NEIN.
f
Es erscheint ein Warnhinweis.
Bestätigen Sie diesen mit JA.


Access löscht mit dem Formular- oder Berichtsmodul den gesamten dort enthaltenen Programmcode. Eventuell vorhandene Ereignisprozeduren oder Funktionen gehen damit verloren.
24
© HERDT-Verlag
4
Mit Modulen arbeiten
4.4
Prozeduren in VBA
Prozedurtypen
Prozedurtypen
Die Hilfe von VBA unterscheidet zwischen FunctionProzeduren und Sub-Prozeduren. Alternativ dazu ist es
auch möglich, von Funktionen und Prozeduren zu
sprechen.
Sub-Prozedur
Function-Prozedur
Allgemeine
Prozedur
Function-Prozeduren
D
D
Werden in einer anderen Prozedur aufgerufen
D
Können in allen Modultypen erstellt werden
Ereignisprozedur
Prozedurtypen in Access
Liefern einen Wert zurück, der einer Variablen
zugewiesen werden kann
Sub-Prozeduren
D
D
Geben keinen Wert zurück
Werden in allgemeine Prozeduren und Ereignisprozeduren unterteilt
Allgemeine Prozeduren
D
D
D
Sind für die gesamte Datenbankanwendung gültig
Werden in Standardmodulen erstellt
Der Aufruf erfolgt durch eine andere Prozedur.
Ereignisprozeduren
D
D
Werden als Reaktion auf ein Ereignis ausgeführt (zum Beispiel Klicken auf eine Schaltfläche)
Werden in Formular- oder Berichtsmodulen gespeichert
4.5
Schnellübersicht
Was bedeutet …?
Objekte
Alle Elemente in Access
Standardmodule
Enthalten Prozeduren, die für die gesamte Datenbank Gültigkeit haben
Formular- oder Berichtsmodule (Klassenmodule)
Enthalten alle Ereignisprozeduren des betreffenden Formulars oder Berichts
(Prozeduren sind mit dem Objekt verbunden.)
Prozedur
Anweisungen zum Durchführen einer Teilaufgabe; werden in Modulen
gespeichert
Sub-Prozedur
Spezielle Prozedur, die keinen Rückgabewert liefert
Function-Prozedur
Prozedur, die einen Wert zurückliefert
© HERDT-Verlag
25
4
Access 2010 für Windows - Automatisierung, Programmierung
Sie möchten …
ein Standardmodul erstellen
Register ERSTELLEN, Gruppe MAKROS UND CODE, Schaltfläche
ein Standardmodul
bearbeiten
Doppelklick auf das Modul im Navigationsbereich
ein Standardmodul löschen
Modul im Navigationsbereich markieren,
ein Formular-/Berichtsmodul
bearbeiten
Formular oder Bericht in der Entwurfsansicht öffnen, Register
FORMULARENTWURFTOOLS BZW. BERICHTSENTWURFSTOOLS - ENTWURF, Gruppe TOOLS,
Schaltfläche
ein Formular-/
Berichtsmodul löschen
Eigenschaftenfenster des Formulars oder Berichts öffnen, Eigenschaft
ENTHÄLT MODUL auf NEIN setzen
4.6
ENTF
-Taste
Übung
Module erstellen, umbenennen und löschen
Übungsdatei: Gehalt04.accdb

Öffnen Sie die Datenbank Gehalt04.accdb und erstellen Sie ein neues leeres Modul.

Schließen Sie die VBA-Entwicklungsumgebung, die sich durch die vorherige Aktion automatisch geöffnet hat. Sie sehen, dass Access noch kein neues Modul anzeigt. Öffnen Sie nun
erneut die VBA-Entwicklungsumgebung; benutzen Sie dazu die Tastenkombination
ALT
26
Ergebnisdatei: Gehalt04-E.accdb
F11
.

Speichern Sie die Datenbank, z. B. über den Menüpunkt DATEI - GEHALT04 SPEICHERN in
der VBA-Entwicklungsumgebung.

Geben Sie dem Modul den Namen AllgemeineProzeduren, wenn Access Sie dazu auffordert.

Erstellen Sie ein neues Modul mit dem Namen Modul2, indem Sie das bestehende Modul
kopieren.

Löschen Sie das Modul Modul2.
© HERDT-Verlag
Mit Modulen arbeiten
4
© HERDT-Verlag
27
Herunterladen