Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

OpenArgs gilt nicht fürs Ufo?

Begonnen von Doming, Juli 23, 2025, 14:17:26

⏪ vorheriges - nächstes ⏩

Doming

Hallo,

mit diesem Befehl rufe ich ein Formular auf, welches ein Unterformular enthält

DoCmd.OpenForm "frm_PalDetail", , , "ID = " & Fid, , acDialog, "frm_PalettenHof"
Haltemarke im Ufo meint
Sie dürfen in diesem Board keine Dateianhänge sehen.
und im HaFo
Sie dürfen in diesem Board keine Dateianhänge sehen.

ich bin verwirrt, das Ufo fühlt sich nicht angesprochen, obwohl es zuerst geladen wird?
Wie gebe ich dem denn was mit?

Gruß
 Doming
 

Bitsqueezer

Hallo,

korrekt, denn Du rufst ja mit DoCmd.OpenForm das Hauptformular auf, nur das erhält "OpenArgs".

Daß dieses zuletzt geladen wird, ist auch gerade hier sehr gut, weil es dann das weitere Verfahren bestimmen kann.
Du kannst dann also den Inhalt aus OpenArgs an das Unterformular weitergeben, beispielsweise über eine Public Property dort, in der das UFO dann bestimmen kann, was es damit macht.

Gruß

Christian

Doming

Moin,

hm, na gut. Ist Me.OpenArgs eigentlich während der ganzen Laufzeit des Formulars vorhanden? Kann ich mir das ,,RufForm" sparen?

Gruß
 Doming

Bitsqueezer

Hallo,

OpenArgs ist einfach eine Formulareigenschaft - solange sie nicht überschrieben wird, bleibt ihr Inhalt.
Ich verwende lieber eigene Public Properties, da ich dann einen typsicheren Wert übergeben kann. Aber ist halt umständlicher beim Aufruf, da man auf eine Property erst zugreifen kann, wenn das Formular schon geöffnet ist. Was also vom HFO zum UFO dann kein Problem ist - s.o., denn das UFO wird ja immer zuerst geladen.

Gruß

Christian

markusxy

Zitat von: Bitsqueezer am Juli 24, 2025, 08:28:49Ich verwende lieber eigene Public Properties,

Auch wenn man z.B. mit Formular-Instanzen arbeitet, kannst du die Openargs nicht verwenden.
Da sind public gestellte Klassen/Variablen/Properties eine von mehreren Möglichkeiten.

Knobbi38

#5
Hallo Doming,

mal eine ganz andere Frage: Was möchtest du eigentlich mit so einer Funktion RufForm() in einem Unterformular erreichen?
Sicherlich gibt es da auch noch ganz andere Lösungen, als die Übergabe per OpenArgs.

Gruß Knobbi38

Doming

Ich nutze einige Unterformulare mehrmals.
Und je nachdem, in welchem Zusammenhang (HaFo) sie genutzt werden, soll ein Klick auf ein Feld verschiedenes bewirken.

Beaker s.a.

Zitat, in welchem Zusammenhang (HaFo) sie genutzt werden,
Na also, diesen Zusammenhang "kennt" aber nur das HFo, musst du alle
dynamischen Einstellung des UFo beim Öffnen/Laden des HFo machen.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Knobbi38

Hallo,

Zitat... in welchem Zusammenhang (HaFo) sie genutzt werden
Dafür brauchst du kein Openargs, sondern kannst direkt per Parent-Eigenschaft den Namen des HF abfragen. Bedingung ist allerdings dabei, daß du diese Zugriff mit einem Errorhandler versiehst, um mögliche Fehler abzufangen.

Gruß Knobbi38

Beaker s.a.

Zitatkannst direkt per Parent-Eigenschaft den Namen des HF abfragen
Aber erst wenn das HFo vollständig geladen ist.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Knobbi38

Nein, das geht sofort, also noch bevor Form_Open des HF ausgelöst wird, weil die Instanz des SubFormulars direkt im HF erzeugt wird, sobald das HF Form_Objekt erzeugt wird.

Gruß Knobbi38