Ich habe folgendes Problem:
Ich möchte von einem Popup-Formular in das Unterformular (Listenansicht) eines anderen Formulars springen und zwar möglichst in ein bestimmtes Feld des zuletzt angewählten Datensatzes.
Leider scheitere ich derzeit schon an der Schreibweise für den „Sprungbefehl“.
Habe z.B. schon „forms!E12_Mat_HF.Form!E12_Mat_UF!Mat_Stk.SetFocus“
versucht um überhaupt in das UF zu gelangen, wobei mir klar ist das ich mit der richtigen Schreibweise des o.g. Befehls wahrscheinlich auf den 1. Datensatz der Liste gelangen würde und nicht auf den zuletzt ausgewählten. Ich nehme an dazu bräuchte ich dann ein Recordset, dem in dem ich eine gemerkte Variable suchen lasse. Innerhalb eines einfachen Formulars kein Problem, aber wie komme ich aus dem „Fremdformular“ in das Unterformular?
versuch mal, erst das UFO-St.El. (falls es wirklich „E12_Mat_UF“ heißt) zu fokussieren:
(und das .Form wegzulassen/zu versetzen, weil an falscher Stelle)
Leider haben beide Varianten das gleiche Ergebnis gebracht.
Bekomme jedesmal die Fehlermeldung: Kann das in Ihrem Ausdruck angesprochene Feld ‚E12_Mat_UF‘ nicht finden.
Nochmals zur Erläuterung:
(Leider scheint meine Antwort von heute mittag im Nirvana verschwunden zu sein)
E12_Mat_HF ist mein Hauptformular (Einzelblattansicht)
E12_Mat_UF ist mein Unterformular (Tabellenansicht)
Mat_Stk ist das Feld aus dem ich in das Fremdformular springe und in das ich am liebsten wieder zurückspringen möchte. Die ID des Datensatzes, wo ich zuletzt war habe ich mir in die Datenbankeigenschaften geschrieben und gehe davon aus, dass ich in die entsprechende Zeile nur über ein Recordset komme. Habe nach etlichen Fehl-Versuchen keine Vorstellung mehr wie ich von meinem Fremdformular in das UF und dann sogar noch in den Datensatz komme.
(Und leider arbeite ich immernoch mit AC97)
Die ID des Datensatzes, wo ich zuletzt war habe ich mir in die
Datenbankeigenschaften geschrieben und gehe davon aus, dass
ich in die entsprechende Zeile nur über ein Recordset komme.
Solltest Du jemals schaffen, das Feld zu fokussieren, kannst Du auch über DoCmd.FindRecord ID den gewünschten Datensatz anspringen.
E12_Mat_HF ist mein Hauptformular (Einzelblattansicht)
E12_Mat_UF ist mein Unterformular (Tabellenansicht)
das UFO befindet sich auch auf dem Hauptformular?
Ja, es ist in das HF einbettet
Mat_Stk ist das Feld aus dem ich in das Fremdformular springe
und in das ich am liebsten wieder zurückspringen möchte.
das zeugt von einem unguten Konzept…
Was machst du da im Fremdformular? Warum springst du da hin
und dann wieder zurück?
Das Fremdformular ist eine Preisliste, aus der ich mir einen Preis auswähle und die ID dann in das UF mit übernehme
Die ID des Datensatzes, wo ich zuletzt war habe ich mir in die
Datenbankeigenschaften geschrieben
keine Ahnung wo du das in den „Datenbankeigenschaften“ rein
geschrieben hast, normaler Weise nutzt man dafür eine globale
Variable…
Ich merke mir die zuletzt angewählte ID des UF (kann man vielleicht ja auch als bookmark mache, hatte nur gerade ein Muster, wie es mit den DB-Eigenschaften geht und bislang ganz gute Erfahrung damit gemacht.
und gehe davon aus, dass
ich in die entsprechende Zeile nur über ein Recordset komme.
wie du siehst, hat dein Konzept hier einen Harken.
Habe nach etlichen Fehl-Versuchen keine Vorstellung mehr wie
ich von meinem Fremdformular in das UF und dann sogar noch in
den Datensatz komme.
Grundsätzlich gebe ich dir recht, nur drehen dann meine User am Rad, weil sie die Zusatzinformationen, die sie zur Entscheidung brauchen schlecht lesen können. Wir reden von ca. 10-15 Spalten und durchaus bis zu 10 Zeilen und mehr. Und dann gibt es in dem Formular auch noch eine Filterfunktion, die in Sonderfällen ausgeschaltet werden darf. Und zu allem Überfluss prüft das Formular bei der Auswahl auch noch, ob z.B. die Mindestmenge nicht unterschritten wurde, die Gebindgröße berücksichtigt ist etc.
Und leider ist es bei einigen unserer Zweischirm-Rechner, das das Formular auf dem linken Monitor erscheint und die Auswahlwahlliste am linken Rand des rechten Monitors. (das aber nur so nebenbei)
E12_Mat_HF ist mein Hauptformular (Einzelblattansicht)
E12_Mat_UF ist mein Unterformular (Tabellenansicht)
das sind die Namen der verwendeten Formulare, nehme ich an…
das UFO befindet sich auch auf dem Hauptformular?
Ja, es ist in das HF einbettet
ok, dann handelt es sich hier bei „UFO“ nicht um Formulare, sondern um ein UFO-STEUERELEMENT, das NICHT unbedingt auch den Namen des Formulares, das es anzeigt , haben muß. (Im Formualrentwurf das Ufo-Steuerelement markieren und unter Eigenschaften/Name nachsehen)
Habe nach etlichen Fehl-Versuchen keine Vorstellung mehr wie
ich von meinem Fremdformular in das UF und dann sogar noch in
den Datensatz komme.
naja, hab ich in meinem vorherigen Posting geschrieben:
versuch mal, erst das UFO-St.El. (falls es wirklich „E12_Mat_UF“ heißt) zu fokussieren:
(und das .Form wegzulassen/zu versetzen, weil an falscher Stelle)
Forms!E12_Mat_HF!E12_Mat_UF.SetFocus
Forms!E12_Mat_HF!E12_Mat_UF.Form!Mat_Stk.SetFocus
evtl. lohnt noch, das Ursprungsform zunächst zu fokussieren:
bei der ersten springt er ins UF zurück, aber logischerweise ins erste Feld des ersten Datensatzes (nichts anderes sagt der Befehle ja auch aus)
bei der zweiten Version bekomme ich den Laufzeitfehler 438 - Objekt unterstützt diese Eigenschaft oder Methode nicht…