Discussion:
Auf Controls in Unterformular zugreifen
(zu alt für eine Antwort)
Thomas H.
2003-06-30 09:41:07 UTC
Permalink
Hallo Leute

Ich habe wieder ein mal ein VBA-Problem mit meinem Access
97. Dieses Mal geht es um eine Prozedur (in eigenem Modul),
die auf ein Control in einem Unterformular zugreifen soll.
Wie macht man das?

In der [Control]_GotFocus()-Prozedur habe ich testweise
folgende Zeile notiert:

Call MsgBox(Me.name & " / " &
Access.Forms(Me.name).Controls("Jan").value)

Dies liefert mir, wenn ich das Unterformular direkt öffne,
die richtigen Werte zurück. Wenn ich jedoch das
Hauptformular öffne und das Control im Unterformular
selektiere, dann bekomme ich eine Fehlermeldung. Diese
besagt, dass das Formular [Unterformularname] nicht
gefunden worden sei.

Mit der SubForm()-Funktion habe ich auch schon
rumexperimentiert, ich komme jedoch nicht auf einen grünen
Zweig.

Zudem: Wie löse ich das Problem mit den Formular- und
Unterformularnamen, wenn ich das ganze in eine Prozedur
verpacke? Als Parameter möchte ich diese lieber nicht
übergeben, da die Prozedur sonst schon genug hat. Gibt es
eine Möglichkeit, direkt mit dem Formular weiterzuarbeiten,
von dem aus eine Prozedur aufgerufen wurde? Ich bin für
jede Hilfe dankbar.

Mit freundlichen Grüssen & bestem Dank

Thomas
Ulf Knochenhauer
2003-06-30 09:52:17 UTC
Permalink
Hallo Thomas,
Post by Thomas H.
Ich habe wieder ein mal ein VBA-Problem mit meinem Access
97. Dieses Mal geht es um eine Prozedur (in eigenem Modul),
die auf ein Control in einem Unterformular zugreifen soll.
Wie macht man das?
vielleicht FAQ 4.2 auf www.donkarl.com

Gruss
Ulf
--
Ulf Knochenhauer
***@ipc-dresden.de
Thomas H.
2003-06-30 10:18:37 UTC
Permalink
Hi Ulf

Erstmals besten Dank. Diesen Punkt in der FAQ habe ich
übersehen. Jedoch ist mein Problem noch nicht wirklich
gelöst: Wie kann ich elegant aus einer Prozedur, die in
einem Modul liegt, darauf zugreifen? Kann ich nicht irgend
wie das aktuelle Formular/Unterformular als Objekt
übergeben und dieses gleich weiterverwenden? Denn wenn ich
mit dem Code aus der FAQ das Unterformular einzeln öffne,
dann stosse ich wieder auf eine unschöne Fehlermeldung.

MfG

Tom2
Ulf Knochenhauer
2003-06-30 11:24:40 UTC
Permalink
Hallo Thomas,
Post by Thomas H.
wie das aktuelle Formular/Unterformular als Objekt
übergeben und dieses gleich weiterverwenden? Denn wenn ich
mit dem Code aus der FAQ das Unterformular einzeln öffne,
dann stosse ich wieder auf eine unschöne Fehlermeldung.
versuchs mal mit:
MsgBox Me!Unterformular.Controls!DeinFeld.Value
oder
MsgBox Forms!DeinFormular!Unterformular.Controls!DeinFeld.Value

Gruss

Ulf
--
Ulf Knochenhauer
***@ipc-dresden.de
Stefan Dase
2003-06-30 10:57:54 UTC
Permalink
Hallo Thomas!
Post by Thomas H.
Ich habe wieder ein mal ein VBA-Problem mit meinem Access
97. Dieses Mal geht es um eine Prozedur (in eigenem Modul),
die auf ein Control in einem Unterformular zugreifen soll.
Wie macht man das?
In der [Control]_GotFocus()-Prozedur habe ich testweise
Call MsgBox(Me.name & " / " &
Access.Forms(Me.name).Controls("Jan").value)
Wieso greifst du nicht gleich mit Me auf das Steuerelemet zu? Dann ist
es egal, ob als Unter- oder nur Formular. Also: Me.Controls("Jan").Value

Grüße,
Stefan
Thomas H.
2003-06-30 12:08:47 UTC
Permalink
Hi Stefan
Post by Stefan Dase
Wieso greifst du nicht gleich mit Me auf das Steuerelemet
zu? Dann ist es egal, ob als Unter- oder nur Formular.
Also: Me.Controls("Jan").Value

Anfangs hatte ich mit Me und Prozeduren ziemlich grosse
Probleme, wesshalb ich auf dessen Verwendung weitgehend
verzichtet habe. Aus meiner Not heraus habe ich es Heute
doch noch einmal versucht und siehe da: Es hat geklapt. Ich
übergebe der Prozedur nun einfach ein Formular, welches
beim Aufruf normalerweise Me ist.

Besten Dank nochmals an alle Helfenden für eure Geduld und
Mithilfe.

MfG

Thomas

Loading...