Color scheme: Dark
You are here: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » troubleshooting » Ein Bericht bricht in der ACCDE mit Fehler 459 („Object or class does not support the set of events“) ab

Ein Bericht bricht in der ACCDE mit Fehler 459 („Object or class does not support the set of events“) ab

Umgebung

Microsoft 365 Access 16.0.20527, 32 Bit. Ein Bericht, der ein ActiveX-Steuerelement enthält und ein eigenes VBA-Modul hat (Enthält Modul = Ja), kompiliert in eine ACCDE. Das Steuerelement muss kein WKL-Steuerelement sein: Derselbe Fehler tritt mit dem Windows Media Player und der Befehlsschaltfläche von Microsoft Forms 2.0 auf. Formulare sind nicht betroffen.

Der Bericht druckt in der ACCDB. In der ACCDE (und in der Access Runtime) bricht er gleich beim Öffnen ab, mit dem Fehler 2473, der sein erstes Ereignis nennt (in englischem Access: „The expression On Format you entered as the event property setting produced the following error: Object or class does not support the set of events“), oder mit dem VBA-Fehler 459 mit demselben Text.

Ursache

Ein Fehler in Access. Die ACCDE enthält ein falsch kompiliertes Berichtsmodul, wenn das Modul in derselben Entwurfssitzung entstanden ist, in der die Datenherkunft des Berichts festgelegt oder geändert wurde, und der Bericht ein ActiveX-Steuerelement enthält. Der Fehler kommt von Access, bevor eine Prozedur des Berichts läuft; das Steuerelement selbst wird nicht aufgerufen.

So verhält sich Access, jede Abfolge in einer eigenen Datenbank:

Abfolge in der EntwurfsansichtACCDE
Datenherkunft und Modul in einer Entwurfssitzung (speichern, schließen)scheitert
Datenherkunft in einer Sitzung, Modul in einer späterendruckt
Der ganze Bericht mit LoadFromText erstellt (der Text enthält Datenherkunft, ActiveX-Steuerelement und Modul)scheitert
Derselbe Text ohne sein Modul, das Modul in einer späteren Sitzung hinzugefügtscheitert
Derselbe Text ohne seine Datenherkunft, die Datenherkunft in einer späteren Sitzung festgelegtscheitert
Ein scheiternder Bericht erneut gespeichert, seinem Modul ein Kommentar hinzugefügt, oder erneut SaveAsText und LoadFromTextscheitert weiterhin
Ein scheiternder Bericht: Enthält Modul in einer Sitzung auf Nein gesetzt, das Modul in einer späteren angelegtdruckt

Weil LoadFromText den ganzen Bericht auf einmal erstellt, scheitert in der ACCDE jeder Bericht mit ActiveX-Steuerelement und Modul, den ein Build aus Textquellen erstellt, sofern der Build ihn nicht repariert.

Lösung

Mit dem Build-Werkzeug gebaut: Das Build-Werkzeug der WKL Forms Object Library (tools/build/Build-AccessApp.ps1) repariert solche Berichte selbst: Nachdem es einen Bericht mit ActiveX-Steuerelement und Modul geladen hat, entfernt es das Modul in einer Entwurfssitzung und legt es in einer zweiten mit demselben Code und denselben Ereigniseigenschaften wieder an. Bauen Sie erneut und erstellen Sie die ACCDE erneut; an den Quellen ändert sich nichts.

Ohne Berichtsmodul: Ein Bericht, dessen Ereignisse Ausdrücke sind, die öffentliche Funktionen eines Standardmoduls aufrufen (zum Beispiel die Ereigniseigenschaft Beim Formatieren des Detailbereichs =FormatStelle()), hat kein eigenes Modul und ist nicht betroffen. Messanzeigen und Diagramme in einem Bericht drucken zeigt diese Form; sie gilt auch für Berichte, die in Access von Hand erstellt werden.

de/wiki/msaccess/comctl/troubleshooting/report-fails-with-error-459-in-accde.txt · Last modified: by Wolfgang van der Stille