VBA treibt mich in den Wahnsinn

Liebe ExpertInnen,

ein völlig bescheuertes Phänomen: Hin und wieder (tholl!!) verlieren Ereignisprozeduren nach dem Editieren des Moduls die Fähigkeit, auf Ereignisse zu reagieren. ALs Workaround schmeiße ich sie dann raus und setze sie neu ein, dann läuft es wieder. So kann ich nicht arbeiten! (Natürlich kann ich - aber wer will das schon). „Datenbank reparieren“ beeindruckt das Phänomen übrigens nicht im mindesten. Wer weiß was?

Gruß Ralf

ps: Wer einen besseren Titel weiß, möge ihn in die Antwort setzen, ich wäre dankbar. Mir fällt dazu nichts ein.

Hallo,

und was editierst Du da an den Prozeduren? (ein Modul selber kann man nicht editieren, höchstens umbenennen)

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moin Ralf!

ps: Wer einen besseren Titel weiß, möge ihn in die Antwort
setzen, ich wäre dankbar. Mir fällt dazu nichts ein.

Gern gescheh’n!
CU DannyFox64 :wink:

Moin, Franz,

und was editierst Du da an den Prozeduren?

ich schreibe Buchstaben, Zahlen und Sonderzeichen. Wüsstest Du was Besseres?

Gruß Ralf

Hallo, Ralf!

Wie erzeugst Du denn die Ereignisprozeduren? Ich weiß, Frage klingt lächerlich…

Aber: Ich hatte auch schon so was ähnliches. Wenn ich die Dinger direkt im VBA-Editor eintackere, dann sind sie meistens vorhanden. Aber hin und wieder kriegt Access nicht mit, auch die Eigenschaft des Steuerelements bei „On“ auf „Ereignisprozedur“ zu setzen. Wann das genau passiert, weiß ich nicht; ist, wie Du selbst erfahren hast, nicht reproduzierbar. Resultat ist dann, dass ich eben die Ereignisprozedur habe, aber die passende Eigenschaft dem Steuerelement fehlt, und dann reagiert es eben nicht auf ein Ereignis.

Wenn ich dann allerdings aus dem Formulareditor beim Eigenschaftendialog des Steuerelements „Ereignisprozedur“ auswähle, dann läuft’s eigentlich immer…

Schau also mal in die entsprechende Eigenschaft; ich möchte fast wetten, dass dort nichts mehr drin steht, obwohl die Prozedur vorhanden ist. Das ist imho übrigens noch nicht mal als krasses Fehlverhalten zu deuteln, denn nur weil Du eine entsprechende Prozedur hast, kannst Du ja vielleicht doch lieber ein Makro oder eben gar nichts beim Eintreten des Ereignisses ausführen wollen. Da sind dem Anwendungsentwickler eben zu viele Freiheiten gegeben worden, die eben nicht immer gut sind… Und daher macht auch ein Reparieren nichts.

Gruß, Manfred

Moin, Manfred,

Wie erzeugst Du denn die Ereignisprozeduren?

meistens im VBA-Editor - der ist eh offen, dann suche ich das Objekt und das passende Ereignis zusammen und lege los.

Aber hin und wieder kriegt Access nicht mit, auch
die Eigenschaft des Steuerelements bei „On“ auf
„Ereignisprozedur“ zu setzen.

Das wäre eine Möglichkeit. Zumindest weiß ich, wo ich in Zuckumpft nachsehe :smile:

Wann das genau passiert, weiß ich nicht

Wenn ich so zurückdenke, meine ich, das wäre nur bei Ereignissen zum Formular aufgetreten, nie bei Feldern.

Das ist imho übrigens noch nicht mal
als krasses Fehlverhalten zu deuteln, denn nur weil Du eine
entsprechende Prozedur hast, kannst Du ja vielleicht doch
lieber ein Makro oder eben gar nichts beim Eintreten des
Ereignisses ausführen wollen.

Na ja, Ereignisprozeduren auf Verdacht zu schreiben ist mir bislang noch nicht in den Sinn gekommen, aber wer weiß schon, was morgen ist.

Besternten Dank & Gruß
Ralf

Moin, Ralf!

Wann das genau passiert, weiß ich nicht

Wenn ich so zurückdenke, meine ich, das wäre nur bei
Ereignissen zum Formular aufgetreten, nie bei Feldern.

Ist das gleiche Phänomen.

Na ja, Ereignisprozeduren auf Verdacht zu schreiben ist mir
bislang noch nicht in den Sinn gekommen, aber wer weiß schon,
was morgen ist.

Das zielt vielleicht auch mehr in die Richtung, dass einer erst mal 'ne Prozedur schreibt und dann doch lieber ein Makro haben will. Oder so was. Keine Ahnung. Wer weiß schon, was sich MS da wirklich bei gedacht hat…

Gruß, Manfred

Hallo Ralf,

naja, meine Frage war schon ernst gemeint…

Daß Du beim Editieren da „Zeichen“ eintippst/änderst, dürfte wohl jedem klar sein…

Dein Problem kann auftreten, wenn Du die Prozedurdeklaration abänderst. Dann kann es sein, daß in der Eigenschaft selber beim entspr. Ereignis nicht mehr „[Ereignisprozedur]“ steht, sondern gar nichts und deshalb die Prozedur, obwohl sie im Modul steht, nicht mehr aufgerufen wird.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moin, Franz,

Dein Problem kann auftreten, wenn Du die Prozedurdeklaration
abänderst. Dann kann es sein, daß in der Eigenschaft selber
beim entspr. Ereignis nicht mehr „[Ereignisprozedur]“ steht,
sondern gar nichts und deshalb die Prozedur, obwohl sie im
Modul steht, nicht mehr aufgerufen wird.

das wird wohl ungefähr die Ursache sein, Manfred tippt auch in diese Richtung. Komisch ist dabei, dass On-Event-Verweise aus den Eigenschaften verschwinden, an deren Prozeduren nichts geändert wurde.

Nachvollziehen lässt es sich sowieso nicht, das riecht sehr nach einer Redundanz im Datenmodell von Access. Da existert ein Verzeichnis der On-Event-Einträge, das von zwei Stellen her gepflegt wird: Aus dem Eigenschaften-Fenster und aus dem VB-Editor. Von beiden werden vor dem Zurückschreiben Kopien angelegt, der Anwender könnte seine Änderungen ja verwerfen wollen; welche Fassung da gewinnt, bleibt offen :smile:))

Gruß Ralf