Auslösendes Ereignis - 2fach mit unterschiedlichen Versionen?

Hallo *,

ich versuche gerade, bei einem formatierten Feld in einem
Tabellenkontrollfeld eines Formulars ein Ereignis (Änderung des Textes)
auszuwerten. Der Start des Makros ist dann in etwa so:
SUB Test(oEvent AS OBJECT)
oField = oEvent.Source.Model
...
END SUB

Jetzt habe ich das Problem, dass angeblich die Textänderung doppelt
auftritt, jedenfalls das Makro 2* hintereinander ausgelöst wird. Beim 2.
Mal existiert aber das Model überhaupt nicht mehr. Mit xray habe ich
oEvent und auch oEvent.source untersucht. Das Einzige, was ich mir jetzt
gebaut habe, ist:
IF oEvent.Source.MaxTextLen <> 0 THEN
END IF
... weil in der Source bei beiden Events MaxTextLen steht und die eine
Länge eben 0 ist, die andere auf -1 steht.

Was löst da wohl doppelt das Ereignis aus, das zwar an ein Feld des
Tabellenkontrollfeldes gebunden ist, aber eben sein eigenes Feld nicht
findet?

Gruß

Robert

Hallo Robert,

etwas ähnliches gibt es beim Ereignis "vor der Datensatzaktion" in einem Formular. Das ist schon seit Jahren so. Ich habe das nicht so genau angeschaut, dass ich eine Hypothese hätte, ob das in diesem Fall sinnvoll ist oder ein Fehler. Ich beende einfach das Makro, wenn der unterstützte Service nicht der ist, den ich brauche, was ja doch eine ganz saubere Abfrage ist.
Nun scheint, laut meinem schnellen Test, bei deinem Problem aber kein Service zu existieren, also musst du dir, wie du es getan hast, etwas anderes zum Abfragen suchen, und die Länge abzufragen würde auch mir nicht so gut gefallen.
Bei mir kommt der zweimalige Aufruf auch beim Öffnen des Formulardokuments, und übrigens ist bei mir in beiden Fällen das Model vorhanden (was aber auch nichts wesetlich ändern dürfte). Vielleicht habe ich nicht genau deine Situation gebastelt.

Gruß

Gerhard

Hallo Gerhard,

ich habe jetzt schlicht das Ereignis gewechselt. Beim Verlassen des
Feldes wird jetzt das Makro ausgelöst. Da kommt das Ereignis nur 1* und
es bietet direkt den richtigen Wert, den ich haben will.

Das mit dem ImplementationName habe ich ja auch im Handbuch hinterlegt -
half mir hier nur nicht weiter, da eben kein Name verfügbar war. Dann
kam auch noch zu dem ersten Doppler hinzu, dass die Textänderung
zweifach auftauchte, weil zuerst etwas geschrieben wurde (z.B. "2"),
dann die erste Auslösung erfolgte und anschließend das formatierte Feld
auch noch die Maßeinheit "Stck." ergänzte - noch einmal der ganze Sermon
mit "2 Stck.".

Das war mir dann alles zu unberechenbar, zumal es dann auch nicht
möglich war, in einem Rutsch eine zweistellige Zahl einzutragen. Die
Lösung jetzt ist für mich bedeutend besser.

Was ich nebenbei noch gelernt habe und irgendwo im Handbuch hinterlegen
werde: Das fokussieren mit stFocus() funktioniert in einem
Tabellenkontrollfeld nicht, obwohl die Eigenschaft angeboten wird.
Stattdessen muss im View des Tabellenkontrollfeldes die
CurrentColumnPosition angegeben werden.

Gruß

Robert