Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Doming am Juli 23, 2025, 14:17:26

Titel: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Doming am Juli 23, 2025, 14:17:26
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
2025-07-23 14_12_05-Microsoft Visual Basic for Applications - PalSt0 [Unterbrechen] - [Form_ufo_ObjP.png
und im HaFo
Zwischenablage01.png

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

Gruß
 Doming
 
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Bitsqueezer am Juli 23, 2025, 15:57:17
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
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Doming am Juli 24, 2025, 06:04:12
Moin,

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

Gruß
 Doming
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Bitsqueezer am Juli 24, 2025, 08:28:49
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
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: markusxy am Juli 24, 2025, 12:47:45
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.
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Knobbi38 am Juli 24, 2025, 14:55:27
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
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Doming am Juli 25, 2025, 06:06:16
Ich nutze einige Unterformulare mehrmals.
Und je nachdem, in welchem Zusammenhang (HaFo) sie genutzt werden, soll ein Klick auf ein Feld verschiedenes bewirken.
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Beaker s.a. am Juli 25, 2025, 11:35:40
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.
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Knobbi38 am Juli 25, 2025, 15:39:44
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
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Beaker s.a. am Juli 26, 2025, 12:57:38
Zitatkannst direkt per Parent-Eigenschaft den Namen des HF abfragen
Aber erst wenn das HFo vollständig geladen ist.
Titel: Re: OpenArgs gilt nicht fürs Ufo?
Beitrag von: Knobbi38 am Juli 26, 2025, 13:21:19
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