Treeview und Ereignisse

27/05/2009 - 17:08 von Klaus Schmidt | Report spam
Hallo,

auf ein Access-Formular habe ich ein Treeview gesetzt und dort auch
schon Knoten drin. Nun möchte ich auf die Ereignisse reagieren, wenn
der Benutzer auf Knoten einfach oder doppelt klickt. Da kommt dann nur
noch eine Fehlermeldung.

Zuerst ein bißchen Code, was ich gemacht habe:

Private WithEvents tvwMain As MSComctlLib.TreeView

Im "Load"-Ereignis des Formulars dann:
Set tvwMain = Me!tvwBerichte.Object
Da fülle ich das dann auch mit Knoten. So weit, so nett.

In den Eigenschaften des Treeview habe ich nur die Ereignisse "Bei OLE-
Aktualisierung", "Hingehen", "Verlassen", "Fokuserhalt" und
"Fokusverlust". Also kein Klicken oder Doppelklicken auf Knoten.

Darum habe ich mir das selbst gebaut, und folgenden Code geschrieben:

Private Sub tvwMain_NodeClick(ByRef myNode As Object)

MsgBox "test"

End Sub

Egal ob ich es nun als "ByRef" oder "ByVal" habe, oder "myNode" oder
"Node", oder "Object" oder "Node" als Typ. Es kommt immer nur eine
Fehlermeldung:

"Sie haben als Einstellung der Ereigniseigenschaft den Ausdruck Bei
Laden eingegeben. Dieser Ausdruck hat einen Fehler verursacht:
Deklaration der Prozedur entspricht nicht der Beschreibung eines
Ereignisses oder einer Prozedur mit demselben Namen.

* Der Ausdruck gibt möglicherweise weder den Namen eines Makros noch
den Namen einer benutzerdefinierten Funktion, noch [Ereignisprozedur]
zurück.
* Beim Auswerten einer Funktion, eines Ereignisses oder eines Makros
trat möglicherweise ein Fehler auf."

Ich kann da noch irgendwelchen Hilfetext ausklappen, aber ich verstehe
ja das hier schon nicht. Könnt ihr mir helfen, dass ich das doch noch
hinkriege?

Meine Quellen für den Versuch sind http://www.access-im-unternehmen.de...9&id00
und ein alter Beitrag "Treeview, Ereignisse werden nicht ausgelöst"
hier im Forum.

Gruß, Klaus
 

Lesen sie die antworten

#1 André Minhorst
27/05/2009 - 17:30 | Warnen spam
Hi Klaus,

Am Wed, 27 May 2009 08:08:15 -0700 (PDT) schrieb Klaus Schmidt:

auf ein Access-Formular habe ich ein Treeview gesetzt und dort auch
schon Knoten drin. Nun möchte ich auf die Ereignisse reagieren, wenn
der Benutzer auf Knoten einfach oder doppelt klickt. Da kommt dann nur
noch eine Fehlermeldung.

Zuerst ein bißchen Code, was ich gemacht habe:

Private WithEvents tvwMain As MSComctlLib.TreeView

Im "Load"-Ereignis des Formulars dann:
Set tvwMain = Me!tvwBerichte.Object
Da fülle ich das dann auch mit Knoten. So weit, so nett.

In den Eigenschaften des Treeview habe ich nur die Ereignisse "Bei OLE-
Aktualisierung", "Hingehen", "Verlassen", "Fokuserhalt" und
"Fokusverlust". Also kein Klicken oder Doppelklicken auf Knoten.

Darum habe ich mir das selbst gebaut, und folgenden Code geschrieben:

Private Sub tvwMain_NodeClick(ByRef myNode As Object)

MsgBox "test"

End Sub

Egal ob ich es nun als "ByRef" oder "ByVal" habe, oder "myNode" oder
"Node", oder "Object" oder "Node" als Typ. Es kommt immer nur eine
Fehlermeldung:

"Sie haben als Einstellung der Ereigniseigenschaft den Ausdruck Bei
Laden eingegeben. Dieser Ausdruck hat einen Fehler verursacht:
Deklaration der Prozedur entspricht nicht der Beschreibung eines
Ereignisses oder einer Prozedur mit demselben Namen.



die Fehlermeldung sagt doch schon alles - und da Du, wie Du schreibst, die
Routine selbst erstellt hast, wird da wohl ein Fehler drin sein. Deshalb
lass Dir die làstige Arbeit vom VBA-Editor abnehmen und wàhle einfach oben
links im Codefenster mit dem Klassenmodul des Formulars den Namen des
Objekts und dann links die Bezeichnung der gewünschten Ereignisprozedur aus
- schon legt der VBA-Editor den Prozedurrumpf für Dich an.

Ciao
André

http://www.access-entwicklerbuch.de
http://www.access-im-unternehmen.de

Ähnliche fragen