Sprung in ein Feld eines Unterformulars

Hallo

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?

Nutze übrigens (leider) noch Access97

Hallo,

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

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Sorry, konnte leider erst heute reagieren…

Leider haben beide Varianten das gleiche Ergebnis gebracht.
Bekomme jedesmal die Fehlermeldung: Kann das in Ihrem Ausdruck angesprochene Feld ‚E12_Mat_UF‘ nicht finden.

N’abend,

Bekomme jedesmal die Fehlermeldung: Kann das in Ihrem Ausdruck
angesprochene Feld ‚E12_Mat_UF‘ nicht finden.

dann finde heraus, wie dein Unterformular wirklich benannt ist.

Ein FELD mit der Bezeichnung hast du doch nicht? oder?
Also deutet diese Fehlermeldung darauf hin, dass du nicht das UFO sondern ein Feld ansprichst.

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo Netwolf (jetzt aus Rostock?)

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)

Gruss Matthias

Hallo,

probier einmal

Forms![E12_Mat_HF].Controls![E12_Mat_UF].SetFocus
Forms![E12_Mat_HF]![E12_Mat_UF].Controls![Mat_Stk].SetFocus

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.

(Und leider arbeite ich immernoch mit AC97)

Tolles Programm!

:wink:

ujk

Hallo Netwolf (jetzt aus Rostock?)

Hallo Matthias, ja mittlerweile aus Rostock :smile:

E12_Mat_HF ist mein Hauptformular (Einzelblattansicht)
E12_Mat_UF ist mein Unterformular (Tabellenansicht)

das UFO befindet sich auch auf dem Hauptformular?

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?

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…

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.

klar, das ist i.d.R. auch nicht sinnvoll.

(Und leider arbeite ich immernoch mit AC97)

das ist immer noch besser als nichts :smile:

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo Netwolf (jetzt aus Rostock?)

Hallo Matthias, ja mittlerweile aus Rostock :smile:

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 :smile: 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.

klar, das ist i.d.R. auch nicht sinnvoll.

Mir fehlt halt einfach eine bessere Idee…

(Und leider arbeite ich immernoch mit AC97)

das ist immer noch besser als nichts :smile:

Grüße aus Rostock
Wolfgang
(Netwolf)

Gruß aus Bremen und Berlin
Matthias

Hallo Matthias,

Das Fremdformular ist eine Preisliste, aus der ich mir einen
Preis auswähle und die ID dann in das UF mit übernehme

warum nutzt du dafür nicht einfach ein Kombi-Feld?
Schneller, einfacher und besser geht es nicht.

Grüße aus Rostock
Wolfgang
(Netwolf)

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)

Bis in das UF komme ich jetzt. Nur in das Feld bzw. die Spalte springt er nicht, bzw. gibt eine Fehlermeldung

Hallo,

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:

Forms!E12_Mat_HF.Setfocus

Forms!E12_Mat_HF! UFOSTEUERELEMENTNAME.SetFocus
Forms!E12_Mat_HF! UFOSTEUERELEMENTNAME.Form!Mat_Stk.SetFocus

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Habe beide Varianten versucht

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…