PDA

Vollständige Version anzeigen : acGotoRecord im Unterformular


zone128
06.09.2003, 16:49
Hallo,

ich möchte den Focus auf ein im Formular>Unterformular>Unterformular1 lenken, leider funktioniert das nicht so richtig.

Forms!Formular.setFocus
DoCmd.GoToRecord acDataForm, , Forms!Formular, acGoTo, 3

Funktioniert, aber
Forms!Formular.setFocus
DoCmd.GoToRecord acDataForm, Forms!Formular, acGoTo, 3
DoCmd.GoToRecord acDataForm, Forms!Formular!Unterformular, acGoTo, 5
DoCmd.GoToRecord acDataForm, Forms!Formular!Unterformular!Unterformular1, acGoTo, 15

Funktioniert nicht. Die Faq von Karl Dornbauer hat mich leider auch nicht weiter gebracht. Dort steht geschrieben
Me![UFoSteuerelement_im_Hauptformular].SetFocus
Me![UFoSteuerelement_im_Hauptformular].Form![Steuerelement_im_UFo].SetFocusUm den Fokus auf ein Element im UFo setzen zu können, oder z.B. die Methode GoToRecord im UFo anwenden zu können, ist es oft notwendig, zusätzlich vorher den Fokus auf das UFo-Steuerelement im Hauptformular, zu setzen, also jenes Steuerelement, in dem sich das UFo befindet:
Villeicht kann mir ja jemand beim Anpassen des Codes helfen ;-)

Danke

Hondo
06.09.2003, 17:01
Hallo,
was willst du eigentlich machen?
Den Fokus verschieben oder in den Datensätzen blättern?

Forms!Formular.setFocus Ist Formular das UnterformularSteuerelement?

DoCmd.GoToRecord acDataForm, Forms!Formular, acGoTo, 3
Wenn der Fokus auf dem Hauptformular ist, sollte DoCmd.GoToRecord , , acGoTo, 3 genügen.

Um das gleiche im Ufo zu machen zuerst den Fokus auf das Ufo setzen
Me!UnterformularSteuerelement.setFocus

Gruß Andreas

zone128
06.09.2003, 18:04
Ich möchte in den Datensätzen blättern.

Forms!Formular.setFocus >>> ist das Hauptformular

Also villeicht noch eine kurze Erläuterung, ich möchte aus einem völlig fremden Formular durch klicken auf einen Datensatz in das Hauptformular > Unterformular > Unterformular1 wechseln und bei dem richtigen Datensatz landen. Bisher komme ich aber nur zum richtigen Datensatz im Hauptformular.

racoon0506
07.09.2003, 09:36
Wie du selbst schon geschrieben hast ist es oft notwendig, zusätzlich vorher den Fokus auf das UFo-Steuerelement im Hauptformular zu setzen
mit Forms!Formular.setFocus setzt du den Focus ja lediglich auf das HF.....
also müsstest du zunächst mal mit
Forms!DeinHF!DeinUF-Steuerelement.SetFocus
den Focus auf das Steuerelement, in dem sich dein UF befindet setzen.

Bis hierhin geht das Zitat ja auch nur von einer HF/UF-Kombination aus.
Jetzt schreibst du aber, dass du ein UF im UF ansprechen willst.
Demnach würde ich dann auch mal probieren, den Focus auf das UF-Steuerelement im UF zu setzen.
Forms!DeinHF!DeinUF-Steuerelement.Form!DeinUUF-Steuerelement.SetFocus


(vielleicht geht es dann, habs nicht getestet....)

zone128
07.09.2003, 10:31
geht leider alles nicht, ich hänge mal ein Beispiel an, villiecht kann ja mal jemand schauen

Bin wohl doch zu blond ;-)

Beispiel DB (http://zone128.ath.cx/db1.zip)

zone128
07.09.2003, 13:18
So, ich habe es hinbekommen

Die richtige Syntax lautet
DoCmd.FindRecord id des Datensatzes, , True, , True

Um den Fokus auf ein Element im UFo setzen zu können, oder z.B. die Methode GoToRecord im UFo anwenden zu können, ist es oft notwendig, zusätzlich vorher den Fokus auf das UFo-Steuerelement im Hauptformular, zu setzen, also jenes Steuerelement, in dem sich das UFo befindet:
Me![UFoSteuerelement_im_Hauptformular].SetFocus
Me![UFoSteuerelement_im_Hauptformular].Form![Steuerelement_im_UFo].SetFocus

ich denke dass sich da bei der (hervorragenden) Faq von Karl Dornbauer ein kleiner Fehler eingeschlichen hat, denn es ist nicht immer möglich, mit GoToRecord auf einen festen Datensatz im Ufo zuzugreifen.

Ich hänge mal mein Beispiel an bei dem es nicht geht.

Beispiel (http://zone128.ath.cx/db1.zip)