Report.HasModule-Eigenschaft (Access)

Verwenden Sie die HasModule-Eigenschaft , um anzugeben oder zu bestimmen, ob ein Formular oder ein Bericht über ein Klassenmodul verfügt. Boolescher Wert mit Lese-/Schreibzugriff.

Syntax

Ausdruck. HasModule

Ausdruck Eine Variable, die ein Report-Objekt darstellt.

HinwBemerkungeneise

Die HasModule-Eigenschaft verwendet die folgenden Einstellungen.

Einstellung Visual Basic Beschreibung
Ja True Das Formular oder der Bericht hat ein Klassenmodul.
Nein False (Standard) Das Formular oder der Bericht hat kein Klassenmodul.

Wenn Sie diese Eigenschaft auf False festlegen, ist es wahrscheinlich, dass das Leistungsverhalten Ihrer Datenbank verbessert und Ihre Datenbank kleiner wird.

Die HasModule-Eigenschaft kann nur in der Formularentwurfsansicht oder in der Berichtsentwurfsansicht festgelegt werden, kann aber in allen anderen Ansichten gelesen werden.

Formulare oder Berichte, deren HasModule-Eigenschaft auf Nein festgelegt ist, gelten als einfache Objekte. Lightweight-Objekte sind kleiner und werden in der Regel schneller geladen und angezeigt als Objekte mit zugeordneten Klassenmodulen. In vielen Fällen muss ein Formular oder Bericht keine Ereignisprozeduren verwenden und erfordert kein Klassenmodul.

Wenn Ihre Anwendung ein Switchboard-Formular verwendet, um zu anderen Formularen zu navigieren, können Sie anstelle von Befehlsschaltflächen mit Ereignisprozeduren eine Befehlsschaltfläche mit einem Makro oder Link verwenden. Wenn Sie beispielsweise das Formular Mitarbeiter über eine Befehlsschaltfläche auf einer Schalttafel öffnen möchten, können Sie die HyperlinkSubAddress-Eigenschaft des Steuerelements auf Formularmitarbeiter festlegen.

Lightweight-Objekte werden nicht im Objektbrowser angezeigt, und Sie können das Schlüsselwort New nicht verwenden, um eine neue Instanz des Objekts zu erstellen. Ein einfaches Formular oder ein einfacher Bericht kann als Unterformular oder Unterbericht verwendet werden und wird in der Forms- oder Reports-Auflistung angezeigt. Lightweight-Objekte unterstützen die Verwendung von Makros und öffentlichen Prozeduren, die in Standardmodulen vorhanden sind, wenn sie aus dem Eigenschaftenblatt des Objekts aufgerufen werden.

Microsoft Access legt die HasModule-Eigenschaft auf True fest, sobald Sie versuchen, das Modul eines Objekts anzuzeigen, auch wenn dem Modul tatsächlich kein Code hinzugefügt wird. Wenn Sie z. B . Code im Menü Ansicht für ein Formular in der Entwurfsansicht auswählen, fügt Microsoft Access dem Form-Objekt ein Klassenmodul hinzu und legt dessen HasModule-Eigenschaft auf True fest. Sie können einem Objekt auf die gleiche Weise ein Klassenmodul hinzufügen, indem Sie die HasModule-Eigenschaft im Eigenschaftenblatt eines Objekts auf Ja festlegen.

Wenn Sie die HasModule-Eigenschaft mithilfe des Eigenschaftenblatts eines Objekts auf Nein oder mithilfe von Visual Basic auf False festlegen, löscht Microsoft Access das Klassenmodul des Objekts und jeglichen Code, der möglicherweise enthalten ist.

Wenn Sie eine Methode des Module-Objekts verwenden oder auf die Module-Eigenschaft für ein Formular oder einen Bericht in der Entwurfsansicht verweisen, erstellt Microsoft Access das zugeordnete Modul und legt die HasModule-Eigenschaft des Objekts auf True fest. Falls Sie während der Laufzeit auf die Module-Eigenschaft eines Formulars oder Berichts verweisen und die HasModule-Eigenschaft des Objekts auf False festgelegt ist, tritt ein Fehler auf.

Objekte, die mit einer der Methoden CreateForm oder CreateReport erstellt wurden, sind standardmäßig einfache Objekte.

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.