Neuigkeiten:

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

Mobiles Hauptmenü

Parameterabfrage vom UFo zum HaFo

Begonnen von Chris_HN, August 07, 2023, 13:54:21

⏪ vorheriges - nächstes ⏩

Chris_HN

Hallo zusammen, war das Wochenende über frleißig und bin auf ein Problem gestoßen, wo ich bisher keine Lösung zu habe...

Ich habe ein Hauptformular, auf dem ich in dessen Kopfbereich per Kombinationsfeld den Lieferanten auswähle.
Im Detailbereich des HaFos habe ich dann 3 Registerkarten mit jeweils einem Ufo angelegt für die
  • Lieferandendaten (tbl_Lieferanten)
  • Daten der Ansprechpartner zum gewählten Lieferanten (tbl_Absprechpartner _Lief)
  • Und die Bestellungen bei eben diesem Lieferanten (tbl_Bestellungen).

Die Ufo's sind jeweils mit ID_Lief und ID_Lief_f verknüpft.
Im Ufo zu den Ansprechpartnern habe ich im rechten Bereich ein Listenfeld eingefügt, welches mir zu den Lieferanten die Ansprechpartner anzeigt. Beim Klick auf den Ansprechpartner in der Listbox werden dann im linken Bereich die Kontaktdaten zur Person geladen.

Das Listenfeld der Ansprechpartner habe ich in der Datensatzherkunft mit dem Feld ID_Lief aus dem Hauptformular verknüpft: [Formulare]![frm_Lieferantendetails]![lief_ID].
Funktioniert soweit auch alles prima.

Nur habe ich dann das HaFo (frm_Lieferantendetails) in das Navigationsformular eingebunden und jetzt erscheint bei jedem Aufruf des Navigationsformulars die Abfrage: Parameterwert eingeben: [Formulare]![frm_Lieferantendetails]![lief_ID]. Und das Listenfeld wird (allerdings nur im Naivigationsformular) nicht befüllt. Starte ich das HaFo allein, funktioniert alles.

Nun die Frage: welche Möglichkeit habe ich, diesen Fehler zu umgehen oder das Ufo ohne Parameter zu starten. Ich weiß, dass das UFo wohl vor dem HaFo geladen wird..... Denke, dass der Hase hier im Pfeffer liegt.
Saß da gefühlt ewig dran und finde keine Lösung. Daher besten Dank  im Voraus für ein paar Tipps.....

Grüße aus dem Süden der Republik
Chris
Das Gras wächst nicht schneller, wenn man daran zieht.
(Afrikanisches Sprichwort)

Beaker s.a.

Hallo Chris,

Dein HFo wird jetzt in das UFo des Naviforms geladen. Daher
stimmt der Bezug nicht mehr. Der muss jetzt über die Hierarchie
Naviform - Naviform-UFo(Control) - .Form - DeinUFoControl - .Form - .Feld
hergestellt werden.

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)

Chris_HN

Vielen, vielen Dank, lieber ekkehard.

Musste zwar etwas probieren, aber es hat dann nach einigen (Fehl-) versuchen im Generator dann super geklappt.
Ein Problem bleibt hingegen noch beim Listenfeld. Hier wird nichts aktualisiert. Seither (vor der Einbindung ins NaviForm) war es so, dass wenn ich die cbo_AuswahlLieferanten geändert habe, mir die Listbox lst_AnsprechpartnerLieferant die Ansprechpartner angezeigt hat.

Die Datensatzherkunft der Listbox hat folgende Syntax:
SELECT
   tbl_Ansprechpartner_Lief.lapart_ID,
   tbl_Ansprechpartner_Lief.lapart_Anzeigename,
   tbl_Ansprechpartner_Lief.lief_ID_f
FROM
   tbl_Lieferanten
   INNER JOIN
      tbl_Ansprechpartner_Lief
      ON tbl_Lieferanten.lief_ID = tbl_Ansprechpartner_Lief.lief_ID_f
WHERE
   (((tbl_Ansprechpartner_Lief.lief_ID_f) = [Forms] ! [Navigator] ! [Navigationsunterformular].[Form] ! [ufo_AnsprechpartnerLieferanten] ! [lief_ID]))
ORDER BY
   tbl_Ansprechpartner_Lief.lapart_Anzeigename;

Im VBA Editor habe ich Folgendes stehen:
frm_lieferantendetails:
Private Sub cbo_AuswahlLieferanten_Change()
  Me.ufo_AnsprechpartnerLieferanten.Form!lst_AnsprechpartnerLieferant.Requery
End Sub

Private Sub Form_Load()
 Me!cbo_AuswahlLieferanten = Me!cbo_AuswahlLieferanten.ItemData(0)
 Me.Requery
 Me.ufo_AnsprechpartnerLieferanten.Form.Requery
End Sub

im Ufo frm_lieferantendetails_ufo_Anspechpartner
Private Sub lst_AnsprechpartnerLieferant_Click()
  Me.Form.Recordset.FindFirst "lapart_ID=" & Me!lst_AnsprechpartnerLieferant
End Sub

ich denke, hier passt irgendwo noch ein Verweis nicht.....
Grüßle Chris
Das Gras wächst nicht schneller, wenn man daran zieht.
(Afrikanisches Sprichwort)

Beaker s.a.

Hallo Chris,

Hier
  (((tbl_Ansprechpartner_Lief.lief_ID_f) = [Forms] ! [Navigator] ! [Navigationsunterformular].[Form] ! [ufo_AnsprechpartnerLieferanten] ! [lief_ID]))muss m.E. noch der Form-Verweis im Ufo ergänzt werden (die Leerzeichen sind auch fehl am Platze)
Zitat(((tbl_Ansprechpartner_Lief.lief_ID_f) = [Forms]![Navigator]![Navigationsunterformular].[Form]![ufo_AnsprechpartnerLieferanten].Form![lief_ID]))

Und dies erscheint mir auch nicht ganz richtig
Private Sub lst_AnsprechpartnerLieferant_Click()
  Me.Form.Recordset.FindFirst "lapart_ID=" & Me!lst_AnsprechpartnerLieferant
End Sub
"Me" ist hier schon das Ufo, da braucht es kein ".Form". Die Liste befindet sich
auf dem HFo, also
Private Sub lst_AnsprechpartnerLieferant_Click()
  Me.Recordset.FindFirst "lapart_ID=" & Me.Parent!lst_AnsprechpartnerLieferant
End Sub

gruss ekkehard

P.S.: In der Hoffnung nicht wieder die Diskussion um "." oder "!" loszutreten; -
verwende in VBA lieber durchgängig den ".". Der Vorteil ist, dass du schon
beim Kompilieren auf Schreibfehler bei Objektnamen hingewiesen wirst, und
nicht erst zur Laufzeit per Fehlermeldung.
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)

Chris_HN

Zitat von: Beaker s.a. am August 09, 2023, 13:33:54(die Leerzeichen sind auch fehl am Platze)
Jup, sorry, das kam vom SQL-Formatter. In der Syntax sind keine Leerzeichen.
Herzlichen Dank auch für den Hinweis mit "." und "!". Der Unterschied bzw. dass der Punkt besser ist, war mir nicht bekannt. Im Internet liest man mal so, mal so... gerne gewöhne ich mir das Pünktchen an.

Allerdings zeigt die Listbox noch keine Reaktion.
Zitat von: Beaker s.a. am August 09, 2023, 13:33:54Die Liste befindet sich
auf dem HFo, also
Vllt. noch zur Info:
  • Kombobox (Lieferantenauswahl) ist auf dem (bisherigen) HaFo.
  • Listbox (Ansprechpartner auf dem (bisherigen) UFo.
Beide Formulare sind jetzt im Navigationsformular (Navigator) eingebunden.

Das Gras wächst nicht schneller, wenn man daran zieht.
(Afrikanisches Sprichwort)

Beaker s.a.

Hallo Chris,

Sorry, bekomme gerade den Kopf nicht frei. Kannst du die DB mit
ein paar Beispiel-DS hochladen. Ich schau mir das dann an, - ist
einfacher.

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