Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Fehler behoben durch debuggen?

Begonnen von Manioc, September 16, 2025, 19:38:23

⏪ vorheriges - nächstes ⏩

Manioc

Hallo an das Forum,

ich habe ein seltsames Phänomen, und keine Erklärung dafür.

In einem ziemlich komplexen Access-Programm auf Basis eines ADE/ADP-Frontends Access 2010 und einer SQL-Server Datenbank können Add-Ins programmiert und eingebunden werden.

Im Hauptprogramm (ADE) ist plötzlich ein Dialogfeld, das geöffnet wird, nicht sichtbar, oder es tritt ein Fehler auf, der den Abbruch des Opens hervorruft.

Wenn ich nun den Code bis zum Ende des Openvorgangs in der ADP (das AddIn ist natürlich ein .mda-File) debugge geht das Feld wieder auf, und dann auch wieder ohne debuggen sowohl in der ADP als auch in der ADE.
Fehler behebe ich aber keinen.

Gibts dieses Szenario, und wenn ja, was kann der Grund sein?

Vielen Dank im Voraus

Knobbi38

Hallo Manioc,

sicherlich kann es so etwas geben, aber auf Grund unzureichender Informationen kann man nur Vermutungen anstellen.
Eine solche unscharfe Frage könntest du ebenso gut einer AI stellen, vielleicht spuckt diese dann ein paar Hinweise aus, was du überprüfen könntest.

Knobbi38

Manioc

Ja, mir ist schon klar, dass das ziemlich nebulös ist, aber es ist ein ziemlich komplexes System und ein derartiges Verhalten hab ich in den vergangenen 30 Jahren noch nicht festgestellt.

Mittlerweile bin ich draufgekommen, dass mit dem debuggen des ersten Fehlers nicht das Ende der Fahnenstange erreicht ist.

Ich bekomme beim Aufruf eines Dialogs aus diesem Dialog eine Fehlermeldung, hier der Code des Buttons:

Dim oFrm As New Form_frmSelAdresses

    oFrm.sSelection = MakeClause
    oFrm.bOl = False
    oFrm.Visible = True
    While oFrm.chkCancel = False And oFrm.chkOK = False
        DoEvents
    Wend

da kommt dann noch weiterer Code, der ist aber jetzt unerheblich.

Access mahnt an, dass es die public-Variable .sSelection nicht kennt.
Die Variable ist natürlich definiert.

Nach dem debuggen dieses Fehlers geht das Formular dann auf.

Mir ist klar, ich kann jetzt alle Fehler debuggen und mich drauf verlassen, dass dann alles ohne Änderung funktioniert. Aber man sollte doch den zugrunde liegenden Fehler finden. Es ist ja nicht gesagt, dass das nicht in einer Woche wieder auftritt.

PhilS


Das Problem erscheint schon ziemlich mysteriös. Ich halte ein Problem mit fehlende/falschen Verweisen, entweder in der Hauptanwendung oder in einem der Add-Ins, für eine mögliche Ursache. - Das ist mehr ein Bauchgefühl, als eine konkrete Schlussfolgerung.

Zitat von: Manioc am September 16, 2025, 19:38:23Wenn ich nun den Code bis zum Ende des Openvorgangs in der ADP (das AddIn ist natürlich ein .mda-File) debugge geht das Feld wieder auf, und dann auch wieder ohne debuggen sowohl in der ADP als auch in der ADE.

Fehler behebe ich aber keinen.
Ich verstehe hier nicht was du genau tust.
Kompilierst du nach dem Debuggen (was genau meinst du damit?) die ADE neu, oder funktioniert dann die bereits vorher bestehende ADE wieder?

Diese Beschreibung liest sich so, als wäre damit das Problem dauerhaft behoben. Ich vermute, das "dauerhaft" trifft wohl nicht zu. Unter welchen Umständen tritt das Problem denn dann erneut auf?


Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Manioc

Zitat von: PhilS am September 21, 2025, 14:30:22Diese Beschreibung liest sich so, als wäre damit das Problem dauerhaft behoben. Ich vermute, das "dauerhaft" trifft wohl nicht zu. Unter welchen Umständen tritt das Problem denn dann erneut auf?

Das weiss ich noch nicht. Das Problem ist gleichzeitig auf zwei Arbeitsstationen aufgetreten, die dieselbe Version des AddIns wie alle anderen Stationen haben.
Jetzt versuche ich die Fehler zu beseitigen, aber beim debuggen kommt kein (behebbarer) Fehler, dafür funktioniert der Code nachher wieder.

Das Frontend hab ich schon ausgetauscht (Original kopiert, das funktioniert immer), das AddIn ist ganz normal mit allen Einträgen und Menüs da.
Anfangs konnte man das Dialogfeld nicht aufrufen.
Während des debuggens kam mehrfach ein Fehler, dass irgendein MS-Modul nicht geladen werden konnte.
Daraufhin ließ sich der Dialog ohne Fehler wieder öffnen, beim debuggen bis hierher kam kein Fehler mehr.

Dann kam die seltsame Sache mit der angeblich nicht definierten Public-Variable im Code des Sub-Dialogs.
Sofort darauf funktionierte es und es gab auch beim debuggen keinen Fehler mehr.

Das ganze wirkt, wie wenn sich das System an einige Sachen erst wieder 'erinnern' müsste.
Ob der komplette Fehler irgendwann wieder auftaucht kann ich nicht sagen, es kann auch auf Grund eines 'kreativen' Bedienvorgangs aufgetreten sein, aber ich kann nicht ausschließen, dass es wiederkommt.

Das Frontend besteht aus einer ADE und den verschiedenen AddIns, die geladen werden. Diese liegen als .mda vor, wegen dem debuggen.
Lg ChW

PhilS

Zitat von: Manioc am September 21, 2025, 16:52:49Anfangs konnte man das Dialogfeld nicht aufrufen.
Während des debuggens kam mehrfach ein Fehler, dass irgendein MS-Modul nicht geladen werden konnte.
Daraufhin ließ sich der Dialog ohne Fehler wieder öffnen, beim debuggen bis hierher kam kein Fehler mehr.
Aktuelle Version von Access, ich glaube einschließlich A2010, haben eine beschränkte, eingebaute Funktionalität um defekte Verweise zu reparieren, wenn eine nicht kompilierte DB-Datei direkt in Access geöffnet wird.
Ich vermute, dass das bei DB-Datei von Add-Ins nicht direkt stattfindet, sondern bestenfalls erst wenn deren VBA-Projekte in die VBA-Entwicklungsumgebung geladen werden, wie es beim Debuggen notwendig ist.

Das könnte eine Erklärung für deine Beobachtungen sein. - *Könnte!* - Meines Wissen ist diese Funktionalität nicht öffentlich dokumentiert und somit sind meine Aussage Vermutungen und nicht zwingend zutreffend.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor