PDA

Vollständige Version anzeigen : Steuerelement von Formular ansprechen


cctop11
24.03.2004, 09:05
Hallo.

Wie kann ich denn in einem Formular auf die Steuerelemente eines anderen Formulars zugreifen, also praktisch eine Objektreferenz auf dieses Steuerelemtent erzeugen.

Will also wenn ich in Formular1 bin Steuerelemte von Formular 2 ansprechen.

Aber wie???


Danke

peterffw
24.03.2004, 09:14
Hi,

mit

Forms![Formular2].Steuerelementname

z.b.

Xzal = Forms![Formular2].Rechnungsnummer

oder
Forms![Formular1].Steuerelementname = Forms![Formular2].Steuerelementname

Wichtig dabei ist aber, dass Formular2 auch geladen ist.

Servus
Peter

cctop11
24.03.2004, 09:48
Danke.

Nur hab ich glaub ich ein Problem beim anwenden.

Ich schildere am besten mal konkret mein Problem.

hab Formular1 und Formular2. Formular 2 enthält ein Unterformular.

Wenn ich in Formular1 auf eine Befehlsschaltfläche klicke, soll das Unterformular von Formular 2 so gefiltert werden, dass nur die Abgänge sichtbar sind.

Wenn ich jetzt den Code

[Private Sub Befehl88_Click()

With Forms![Spielerveränderung].Unterformular

.Filter = "[Abgang] = '" & "Abgang" & "'"
.FilterOn = True

End With

End Sub]

wird mir "Laufzeitfehler 2465. Anwendungs oder objektdefinierter Fehler!" angezeigt

peterffw
24.03.2004, 09:54
Hi,

ist sichergestellt, dass Formular 2 geöffnet ist?
Das ganze funktioniert nämlich nur mit geöffneten Formularen.
Ausserdem wo liegt der Sinn der Sache?
Du bist auf Formular 1 und klickst einen Button soweit OK Wird dann sofort Formular 2 geöffnet? oder soll nur der Filter für Formular 2 geändert werden?

Servus
Peter

cctop11
24.03.2004, 10:00
Formular2 ist geöffnet.

Wenn ich auf die Befehlschaltfläche klicke, soll das Formular geöffnet und der Filter angewendet werden.

CptChaos
24.03.2004, 10:14
Original geschrieben von cctop11
Formular2 ist geöffnet.

Wenn ich auf die Befehlschaltfläche klicke, soll das Formular geöffnet und der Filter angewendet werden.

Was denn nun? Ist es geöffnet oder soll es geöffnet werden :confused:
IMO kannst Du ein Unterformular auf einem anderen Formular nur ansprechen, wenn das Hauptformular (hier Formular2 wenn ichs recht verstanden habe) bereits beim Start des Codes geöffnet ist.

cctop11
24.03.2004, 10:27
Das is schlecht.

Hab gemeint, dass das Formular geöffnet werden soll.
Es aber auch nicht funktioniert hat, wenn das Formular geöffnet war.

Na, dann schau ich mal. ob ich nen anderen Weg find.

Vielleciht hat jemand von euch ne Idee.

Kann halt auch den Filter nicht im Formular2 eingeben, da ich mehrere verschieden Filter für das Formular brauch und ich auch nicht immer ein neues Formular erstellen will.


Trotzdem Danke.

Arne Dieckmann
24.03.2004, 10:32
Eine (ungetestete) Möglichkeit:
Übergebe den Filterstring als Öffungsargument beim Öffnen des 2. Formulares:

DoCmd.OpenForm "Formular2", , , , , , "[Abgang] = 'Abgang'"


Und dann ändere beim Formular-Ereignis "Bei Laden" des 2. Formulares den Filter des Unterformulares:

Me!UFoSteuerElementName.Filter=Me.OpenArgs
Me!UFoSteuerElementName.FilterOn=True

cctop11
24.03.2004, 11:52
Optimal.

Läuft wie geschmiert ;-)

Danke.