Neuigkeiten:

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

Mobiles Hauptmenü

Wechseln des Registers inkl Variablenübergabe

Begonnen von xoius, Mai 07, 2020, 13:14:09

⏪ vorheriges - nächstes ⏩

Beaker s.a.

Hallo Franz,
Zitatund dort ist die Referenz auf das aktuelle Formular (es gibt an dieser Stelle ja keines) unbekannt.
Sehe in der Function keine Referenz auf das Form mit Me. Das Form wird
doch als Parameter (frm) übergeben und damit referenziert.
gruss ekkehard
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)

DF6GL

Hallo,

ja sorry, habe überlesen, dass das in einem Ausdruck in der Klick-Eigenschaft des UFOs ("Ufo beim Klicken" ??) steht...

Trotzdem ist auch dort "ME" nicht verwendbar oder definiert..

Der Ausdruck sollte so lauten:

=fktKosten(.[Parent];[KostenID])


Beaker s.a.

Hallo Franz,
Bist du sicher, dass das als Ausdruck im Steuerelementinhalt funzt?
Bei mir funzt es nur mit der kompletten Referenz
=FunctionsName([Formulare]![NameDesHFo]; ...
"..." weil das bei mir nur mit einem festen Wert funktioniert
weder deine Schreibweise noch diese beiden
=FunctionsName([Formulare]![NameHFo]; FeldnameImUFo)
=FunctionsName(([Formulare]![NameHFo];[Formulare]![NameHFo]![NameUFoControl]![Formular]![FeldNameImUFo])
bekomme ich zur Anzeige. Beim 1. Ausdruck erscheint #Typ!, beim 2. #Name?
Durch das Testen bin ich aber auch zu der Überzeugung gekommen,
dass es sehr nervig ist diese Function im Steuerelementinhalt aufzurufen.
Die sollte schon durch ein definiertes Ereignis ausgelöst werden, wie vom
TS gewünscht (Button).
gruss ekkehard
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)


xoius

Oh wow, ja das funktioniert. Viele Dank, dass ihr nicht lockergelassen habt!

Also innerhalb des Formulars formProdukte kann ich nun mit

=fktKosten([].[Parent];[KostenID])

wechseln,...

aber...
aus dem HFForum formODOverview komme ich leider noch nicht auf das Registerelement im anderen Formular formProdukte...


=fktKosten([];[].[formProdukte].[Form].[KostenID])


Ich habe verschiedenste Konstellationen ausprobiert. Meist kommt der Fehler, dass er das Formular formProdukte nicht kennt. Was mach ich denn nun noch verkehrt?

DF6GL

Hallo,

wie wäre es, wenn Du die DB mal hier hochlädst?  komprimiert/repariert und gezippt.  Sonst kommen wir nur beschwerlich weiter.

xoius

Hallo ihr Lieben,

es hat etwas gedauert die DB zu bereinigen.
Zur Erinnerung: Ich möchte aus dem Reiter PV Aufgaben in formODOverview nach formProdukte in den zweiten Reiter Kosten und dort die richtigen Kosten anzeigen lassen.

Beaker s.a.

Hallo Christian,
Zitataus dem HFForum formODOverview komme ich leider noch nicht auf das Registerelement im anderen Formular formProdukte...
Wozu auch? Die beiden Forms haben doch inhaltlich gar nichts miteinander
zu tun. Bei welchem Control hast du die Function denn eingetragen?
ZitatMeist kommt der Fehler, dass er das Formular formProdukte nicht kennt
Na ja, das muss natürlich geöffnet sein, wenn du darauf zugreifen willst.
Die KostenID befindet sich aber zusätzl. in einem UFo des HFo "formProdukte", -
also sollte dann

=fktKosten([];[].[formProdukte].[Form].uctlAlleKosten.[KostenID])

funzen. Vermutlich werden dabei aber immer oder zumindest meistens die
Kostendetails des 1. DS aus "ufoAlleKosten" angezeigt.

OT:
1. Gewöhne dir an den UFo-Controls ein anderes Prefix zu geben als dem
eingebetteten Form; uctl... o.ä. (s.o.)
2. Wie kann man mit so einem wirren Beziehungsfenster vernünftig arbeiten?

gruss ekkehard
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)

xoius

Das funktioniert leider auch nicht. Aber ich möchte euch nicht länger mit einem offensichtlichen Designfehler von mir behelligen. Deswegen: Topic Closed und Danke für eure Tipps!

Oberzicke

Puuh wie schnell man alles vergisst. 20 Jahre Pause mit Access, das ist wie ein Neustart.

Und ich stand heute vor dem gleichen Problem und hab eine simple Lösung (wenn auch wohl nicht fein programmiert) gefunden.

Ein  Unterschied besteht zu meiner DB. Ich habe in allen Registerkarten ein ungebundenes Unterformular mit Namen  sfmDetails. Erst wenn ich eine Registerkarte auswähle bzw. aktiviere weiße ich die Datenherkunft, den Namen des Unterformulares zu (= Zeile 4 des Codes). Diese Zeile wird für obiges Beispiel nicht benötigt. Evtl. kann man das dann noch weiter verkürzen.

zunächst speicher ich den aktuellen Datensatz
und lege mir den zu suchenden Wert in eine Variable
Dann gehe ich mit GoToControl zur 2. Registerkarte, weiße die Datenherkunft zu und setze den Focus auf das Unterformular. So weit hat das oben ja auch geklappt.

Dann gehe ich mit Docmd.GoToControl zu dem Feld (ID) in dem sich die zu suchenden Daten befinden.
Mit FindRecord und Angabe der Variablen (bei mir vid) springt er sofort zum richtigen Datensatz.

In der Beschreibung zur GoToControl Methode bei Access bin ich fündig geworden. So einfach :)

Der Unterschied ist hier, dass es genügt nur den Feldnamen anzugeben und nicht den vollständigen Pfad, was genau mit den og. Fehlermeldungen immer fehlschlägt.


DoCmd.Save
vid = Forms!Hauptformular!sfmDetails!ID.Value
DoCmd.GoToControl ("NAME der 2. Registerkarte")
Forms!Hauptformular!sfmDetails.SourceObject = "Ufrm_Name"
Forms!Hauptformular!sfmDetails.SetFocus

DoCmd.GoToControl ("ID")
DoCmd.FindRecord (vid)

Gruß Zicke

Knobbi38

Hallo Zicke,

einen bereits geschlossenen uralten Thread zu kapern ist nicht die feine Art und bringt die Suchfunktion hier im Forum komplett durcheinander.

Mache bitte einen eigenen neuen Thread auf und wenn du dich auf diesen Thread beziehen möchtest, kannst du ja einen Link darauf hinzufügen.

Es wäre allerdings auch hilfreich, wenn du dann dort dein Problem genauer beschreiben würdest.
 

Mibra1984

Hallo Zicke,

ich habe ein ähnliches Problem. Ist es möglich, dass du deine bessere Lösung einmal hochlädst? Gerne auch in einem neuen Thread oder wir schreiben über PN.

Gruß

Michael

Knobbi38

Hallo Michael,

wenn du ein Problem hast, öffne einen eigenen Thread und beschreibe dort dein Anliegen. Wenn du dann noch eine Beispiel hochladen kannst, erhöht das deine Chancen für eine Hilfestellung enorm.

Gruß
Ulrich