Module: Definition und Funktionsweise
Was ist ein Modul?
Ein Modul ist eine Auflistung von Visual Basic für Applikationen-Deklarationen und -Prozeduren, die zusammen als eine Einheit gespeichert sind.

Module werden im Visual Basic Editor erstellt:

Sie
sehen auf der linken Seite die Klassenobjekte und die Module aufgelistet, rechts
erstellen bzw. verändern Sie den Code für das ausgesuchte Objekt. Wenn Sie unter
(Allgemein) (Deklarationen) noch die Option Explicit definieren
(siehe erstes Bild auf dieser Seite), dann prüft
Access, ob die verwendeten Variablen auch vorher dimensioniert wurden (z.B:
Dim varBeispiel as String).
Wenn Sie diese Option einsetzen und die Variable
varBeispiel ohne Deklaration verwenden, so bringt Access beim Debuggen des
Codes eine Meldung, dass diese Variable nicht bekannt ist, also nicht deklariert wurde.
So kann man falsche Schreibweisen von Variablen verhindern.
Allgemeines - Prozedur - Funktion - Sub-Prozedur - Argumente - Visual Basic Hilfe - Editoren
Es werden zwei Grundtypen von Modulen unterschieden:
Klassenmodule und Standardmodule.
Jede Prozedur in einem Modul kann eine Funktion oder eine Sub-Prozedur sein.
Klassenmodule
Formular- und Berichtsmodule sind Klassenmodule, die mit einem bestimmten Formular oder Bericht verbunden sind. Formular- und Berichtsmodule enthalten häufig Ereignisprozeduren, die als Reaktion auf ein Ereignis in dem Formular oder Bericht ausgeführt werden.
Mit Hilfe dieser Ereignisprozeduren können Sie das Verhalten Ihrer Formular und Berichte sowie ihre Reaktion auf Benutzeraktionen, wie z.B. das Klicken auf eine Befehlsschaltfläche, steuern.
Wenn Sie die erste Ereignisprozedur für ein Formular oder einen Bericht erstellen, erstellt Access automatisch ein dazugehöriges Formular- oder Berichtsmodul.
Zum Anzeigen des Moduls für ein Formular oder einen Bericht, klicken Sie in der Formular- oder Berichts-Entwurfsansicht in der Symbolleiste auf Code .

Prozeduren in Ihren Formular- und Berichtsmodulen können Prozeduren aufrufen, die Sie Standardmodulen hinzugefügt haben.
In Access 95 existieren Klassenmodule nur in Verbindung mit einem Formular oder Bericht. In Access 97 oder späteren Versionen können Klassenmodule auch unabhängig von einem Formular oder Bericht existieren.
Klassenmodule dieser Art sind als Module in der Objekte-Liste des Datenbankfensters aufgelistet. Mit Hilfe eines Klassenmoduls der Module-Auflistung können Sie eine Definition für ein benutzerdefiniertes Objekt erstellen.
Standardmodule
Standardmodule enthalten allgemeine Prozeduren, die nicht mit einem anderen Objekt verbunden sind, sowie häufig verwendete Prozeduren, die von jeder beliebigen Stelle innerhalb Ihrer Datenbank aus ausgeführt werden können.

Sie können die Liste der Standardmodule in Ihrer Datenbank anzeigen, indem Sie im Datenbankfenster unter Objekte auf den Eintrag Module klicken. Formular-, Berichts- und Standardmodule sind ferner im Objektkatalog aufgelistet.
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung
- Links
Was ist eine Prozedur?
Eine Prozedur ist eine Einheit von Visual Basic-Code. Sie enthält eine Reihe von Anweisungen und Methoden, die eine Operation durchführen oder einen Wert berechnen. Die folgende Ereignisprozedur verwendet beispielsweise die Methode OpenForm , um das Formular Bestellungen zu öffnen:
Private Sub ÖffnenBestellungen_Click()
DoCmd.OpenForm "Bestellungen"
End Sub
Es gibt zwei Arten von Prozeduren:
Sub-Prozeduren führen eine Operation oder eine Reihe von Operationen durch, geben jedoch keinen Wert zurück. Sie können eigene Sub-Prozeduren erstellen oder die Vorlagen für Ereignisprozeduren verwenden, die Access definiert.
Jedes Formular und jeder Bericht in Ihrer Datenbank enthält ein eingebautes Formularmodul bzw. Berichtsmodul mit Vorlagen für Ereignisprozeduren. Sie können Code hinzufügen, der als Reaktion auf Ereignisse ausgeführt wird, die im Formular oder Bericht oder in den Steuerelementen des Formulars oder Berichts eintreten.
Wenn Access erkennt, dass ein Ereignis in einem Formular, Bericht oder Steuerelement eingetreten ist, führt es automatisch die für das Objekt und Ereignis benannte Ereignisprozedur aus.
So können Sie beispielsweise eine Ereignisprozedur schreiben, die den Fokus auf das Textfeld NameDesGatten setzt, wenn der Benutzer das Kontrollkästchen Verheiratet aktiviert.
Viele Assistenten (wie beispielsweise der Befehlsschaltflächen-Assistent) erstellen automatisch Ereignisprozeduren für ein Objekt, wenn Sie das Objekt erstellen.
Sie können diese Ereignisprozeduren anzeigen, um Beispiele dafür zu erhalten, wie Prozeduren funktionieren.
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links
Funktionen
Funktion-Prozeduren (auch einfach Funktionen genannt) geben einen Wert zurück, wie beispielsweise das Ergebnis einer Berechnung.
Microsoft Visual Basic enthält viele eingebaute Funktionen. Die Funktion Now ()zeigt beispielsweise das aktuelle Datum und die aktuelle Uhrzeit an.
Neben diesen eingebauten Funktionen können Sie eigene benutzerdefinierte Funktionen erstellen.
Da Funktionen Werte zurückgeben, können Sie sie in Ausdrücken verwenden.
Sie können Funktionen in Ausdrücken an vielen Stellen in Access verwenden, einschließlich in einer Visual Basic-Anweisung oder -Methode, in vielen Eigenschafteneinstellungen oder in einem Kriterienausdruck in einem Filter oder einer Abfrage.
Dieses Beispiel für eine Funktion, ErsterDesNächstenMonats , zeigt das Datum des ersten Tages des Monats an, der auf das aktuelle Datum folgt:
Function ErsterDesNächstenMonats()
ErsterDesNächstenMonats = DateSerial(Year(Now), Month(Now) + 1, 1)
End Function
Diese benutzerdefinierte Funktion besteht aus einer einzigen Zuweisungsanweisung, die das Ergebnis eines Ausdrucks (auf der rechten Seite des Gleichheitszeichens [=]) dem Namen der Funktion, ErsterDesNächstenMonats (auf der linken Seite des Gleichheitszeichens), zuweist.
Sie berechnet das Ergebnis mit Hilfe der eingebauten Visual Basic-Funktionen DateSerial, Year, Now und Month.
Nachdem Sie diese Funktion erstellt haben, können Sie sie in einem Ausdruck in Access beliebig verwenden. Sie können beispielsweise festlegen, dass ein Textfeld den ersten Tag des Monats, der auf das aktuelle Datum folgt, als Standardwert anzeigt, indem Sie die Eigenschaft DefaultValue des Textfeld-Steuerelements auf den folgenden Ausdruck im Eigenschaftenfenster einstellen:
=ErsterDesNächstenMonats()
Um eine Funktion als Eigenschafteneinstellung verwenden zu können, muss sich diese im Formular- oder Berichtsmodul oder in einem Standardmodul befinden.
Sie können eine Funktion nicht in einem Klassenmodul, das keinem Formular oder Bericht zugeordnet ist, als Eigenschafteneinstellung für Formulare oder Berichte verwenden.
Sowohl Sub-Prozeduren als auch Funktionen akzeptieren Argumente.
Erstellen einer benutzerdefinierten Funktion
Öffnen Sie ein neues Modul.
Um ein neues Standardmodul zu öffnen, klicken Sie im Datenbankfenster unter Objekte auf Module und dann auf Neu.
Um ein vorhandenes Standardmodul zu öffnen, klicken Sie unter Objekte auf Module , wählen Sie das zu öffnende Modul aus, und klicken Sie dann auf Entwurf.
Um ein Formularmodul oder ein Berichtsmodul zu öffnen, öffnen Sie das Formular oder den Bericht in der Entwurfsansicht, und klicken Sie dann in der Symbolleiste auf Code .
Um ein neues Klassenmodul zu öffnen, das keinem Formular oder Bericht zugeordnet ist, klicken Sie im Datenbankfenster im Menü Einfügen auf Klassenmodul.
Um ein vorhandenes Klassenmodul zu öffnen, klicken Sie im Datenbankfenster unter Objekte auf Module , wählen Sie das zu öffnende Modul aus, und klicken Sie dann auf Entwurf.
Deklarieren Sie die Funktion, indem Sie die Function-Anweisung eingeben.
Geben Sie einen Funktionsnamen und direkt dahinter in Klammern alle Argumente für die Funktion ein.
Die folgende Deklaration für die IsLoaded-Funktion legt z.B. strFormName als Argument fest:
Function IsLoaded(strFormName As String) As Boolean
Fügen Sie den Visual Basic-Code hinzu, der die Operation oder Berechnung durchführt, die die Funktion ausführen soll.
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links
Erstellen einer benutzerdefinierten Sub-Prozedur
Öffnen Sie ein neues Modul.
Um ein neues Standardmodul zu öffnen, klicken Sie im Datenbankfenster unter Objekte auf Module und dann auf Neu.
Um ein vorhandenes Standardmodul zu öffnen, klicken Sie unter Objekte auf Module , wählen Sie das zu öffnende Modul aus, und klicken Sie dann auf Entwurf.
Um ein Formularmodul oder ein Berichtsmodul zu öffnen, öffnen Sie das Formular oder den Bericht in der Entwurfsansicht, und klicken Sie dann in der Symbolleiste auf Code .
Um ein neues Klassenmodul zu öffnen, das keinem Formular oder Bericht zugeordnet ist, klicken Sie im Datenbankfenster im Menü Einfügen auf Klassenmodul.
Um ein vorhandenes Klassenmodul zu öffnen, klicken Sie im Datenbankfenster auf Module , wählen Sie das zu öffnende Modul aus, und klicken Sie dann in der Symbolleiste des Datenbankfensters auf Entwurf.
Deklarieren Sie die Prozedur, indem Sie die Anweisung Sub eingeben.
Geben Sie einen Prozedurnamen und direkt dahinter in Klammern alle Argumente für die Prozedur ein.
Die folgende Deklaration für die Sub-Prozedur AnzeigenEreignis legt z.B. (Ereignisname As String) als Argument fest:
Sub AnzeigenEreignis(Ereignisname As String)
Fügen Sie den Visual Basic-Code hinzu, der die Operation durchführt, die die Prozedur ausführen soll.
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links
Verwenden von Argumenten in Visual Basic
Ein Argument liefert zusätzliche Informationen zu einer Prozedur, Anweisung oder Methode.
Wenn Sie eine Funktion oder Sub-Prozedur erstellen, deklarieren Sie Argumente, damit Sie der Prozedur bei deren Aufruf Informationen liefern können.
Beim Aufrufen einer Prozedur, die Argumente besitzt, geben Sie die Argumente an, die Sie ihr übergeben möchten.
Auch für viele Anweisungen und Methoden geben Sie Argumente an.
Angeben von Argumenten beim Verwenden einer Prozedur, Anweisung oder Methode in Visual Basic-Code
Bestimmen Sie die Argumente unmittelbar nach dem Namen der Prozedur, Anweisung oder Methode. Setzen Sie die Argumente bei einer Funktion-Prozedur oder -Methode, die einen Wert zurückgibt, in Klammern.
Wenn Sie mehr als ein Argument festlegen, trennen Sie sie jeweils durch ein Komma.
Die folgende Close-Methode des DoCmd-Objekts schließt zum Beispiel das Formular Produkte hinzufügen.
Sie akzeptiert zwei Argumente, acForm und "Produkte hinzufügen":
DoCmd.Close acForm, "Produkte hinzufügen"
Da die Close-Methode keinen Wert zurückgibt, werden die Argumente nicht in Klammern gesetzt.
Mit Hilfe des Objektkatalogs können Sie in den Visual Basic-Code die Syntax von Methoden oder Eigenschaften einschließlich Argumente einfügen.
Der Objektkatalog fügt benannte Argumente ein, die Sie in beliebiger Reihenfolge angeben können.
Sie können entweder diese benannten Argumente verwenden oder die benannten Argumente durch Standardargumente ersetzen.
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links
Wie benutze ich die VB Online Hilfe?
Haben Sie den Entwurfsmodus des Modules oder Formulares/ Berichtes geöffnet, und haben Sie im Formular/ Bericht einen VB Code ereignisorientiert eingegeben, dann können Sie über die Schaltfäche Hilfe die Visual Basic Online Hilfe aufrufen.
Geben Sie einfach ein Stichwort ein und lassen Sie die dazugehörigen Begriffe suchen oder suchen Sie die einzelnen Themenbereiche gezielt ab.
Microsoft bietet damit eine sehr gute Hilfestellung zu den meisten und gebräuchlichsten Themen !

Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links
EDITOREN in VBA:
VB-Eigenschaftenfester
Klicken Sie im VB-Modus auf die Schaltfläche Eigenschaften, erscheint folgendes Fenster:

Hier können Sie noch einmal alle Eigeschaften des ausgewählten Objektes einstellen.
VB-Objektkatalog
Klicken Sie im VB-Modus auf die Schaltfläche Objektkatalog, erscheint folgendes Fenster:

Hier können Sie alle Bibliotheken, Klassen und Elemente suchen und finden, die in dieser DB zur Verfügung stehen.
VB-Explorer
Klicken Sie im VB-Modus auf die Schaltfläche Projekt Explorer, erscheint folgendes Fenster:

Hier können Sie nun alle Objekte Ihres Projektes anzeigen lassen und sich einen Überblick verschaffen.
Soweit dieser kleine Ausflug in die Welt von VBA !
Ich habe hier noch ein kleines Visual-Basic-Script (*.vbs) für Sie :
Wenn Sie es heruntergeladen haben, können Sie es mit der rechten Taste zum Bearbeiten öffnen und dieses Script anpassen.
Es zeigt, wie Schlüssel und Werte in die Windows-Registrierung geschrieben und daraus gelesen werden können,
weiterhin ist die Interaktion mit dem Anwender zu sehen und man kann nachvollziehen, wie bestimmte Dateien (zB. Cookies und temporäre Dateien) zu löschen sind !
aufr.vbs [ 5 kB ]
Dieses Script verlangt zur Ausführung den WSH (Windows Scripting Host) als installiertes Programm !
Für mehr Details benutzen Sie bitte entsprechende Literatur oder die MS-Access-Hilfe !
Warum DB ? - Start - Optionen - Struktur - Hilfe - Objekte - Tabellen - Beziehungen - Abfragen - Formulare - Berichte - Seiten - Makros - Module-VBA - Sicherung - Links