Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Listenfeld nach Listenfeld-DS filtern

Begonnen von mad, Januar 23, 2024, 19:57:27

⏪ vorheriges - nächstes ⏩

mad

Hallo zusammen,

habe bereits ein Formular ,,frm_OEbene1" mit einem UF ,,frm_OEbene11" im dem sich wiederum ein UF ,,frm_OEbene111" befindet. Das Formular verwende ich um Dateien wie Word, Excel, Powerpoint-Dokumente (vermeindlich) sortiert abzulegen.

Die Formulare greifen auf die dazugehörigen Tabellen ,,tab_OEbene1", ,,tab_OEbene11" und ,,tab_OEbene111" zu. In jedem Formular befindet sich noch ein entsprechendes Listenfeld mit der jeweiligen Datenherkunft ,,tab_OEeben...). Es gibt auch diverse Buttons nächster bzw. vorheriger Datensatz.

Wenn ich mich mit den Buttons durch das Formular klicke wird die nachfolgende Ebene entsprechend aktualisiert bzw. zeigt die dazugehörigen Datensätze. Wenn ich in den Listenfeldern einen Doppelklick auf zusammengehörige Datensätze mache, wird der entsprechende DS im entsprechenden Feld (daneben) gezeigt.

Da in den Listenfeldern immer alle DS der entsprechenden Tabelle angezeigt werden, wird das mit der Zeit ziemlich unübersichtlich.
Nun hätte ich gerne die Listenfelder der Ebene2 und Ebene3 so gefiltert, daß immer nur die dazugehörigen Datensätze zum DS des übergeordneten Listenfeldes gezeigt werden.

Um das besser und hoffentlich verständlicher darzustellen habe ich eine Testdatei mit reduzierter Datensatzmenge hinzugefügt.

z.B.
 ,,Liste26"
2 (doppelklicken)
Anzeigt werden soll in ,,Liste37"
21_
22_
,,Liste37"
22_ (doppelklicken)
Anzeigt werden soll in ,,Liste32"
221_
222_


Habe zwar schon einige Forenbeiträge zum Thema ,,RowSource" gelesen, habe aber noch kein Beispiel das zu meiner Anforderung paßt gefunden.

Wie könnte man sowas umsetzen? Hätte jemand ein Beispiel?


Gruss
mad

mad

Hallo Zusammen,

habe mir mal ein Abfrage zum Thema erstellt um abzufragen ob die richtige Filterung zwischen OEbene1 und OEbene11
funktioniert.

Abfrage-Code:
SELECT tab_OEbene11.IDEbene11, tab_OEbene11.OrdnerNr11, tab_OEbene11.OrdnerNeuNr11
FROM tab_OEbene11
WHERE (((tab_OEbene11.OrdnerNr11)=[Me]![IDEbene1]));

Wenn ich die Abfrage öffne kommt das Eingabefenster, dort gebe ich z.B. eine "2" ein und die Abfrage filtert richtig:
Es werden die richtigen DS "21 u. 22" angezeigt.

Nun habe ich die SELECT-Anweisung von oben wie folgt versucht ich das Ereignis "bei Doppelklick" auf einen Eintrag des Listenfeldes "Liste26" einzubinden.

Private Sub Liste26_DblClick(Cancel As Integer)
    Me.Recordset.FindFirst "IDEbene1 = " & Me!Liste26
    Forms!frm_OEbene1!frm_OEbene11!Liste37.RowSource = "SELECT IDEbene11, OrdnerNr11, OrdnerNeuNr11 FROM tab_OEbene11 Where OrdnerNr11 = Me!IDEbene1"
    Forms!frm_OEbene1!frm_OEbene11!Liste37.Requery
End Sub

Wenn ich jetzt einen DblClick in der Liste26 tätige werde ich zur eingabe eines Parameterwertes aufgefordert. Wenn ich dort die Zahl eingebe die ich oben DblClick habe, wird die Liste37 zwar gefiltert aber wird dann zweimal die "2" angezeigt und nicht wie es sein sollte die "21" und "22".

Wo liegen denn meine Fehler?


Gruss
mad

Beaker s.a.

Hallo mad,
1. schaust du hier
wegen
ZitatForms!frm_OEbene1.Form.frm_OEbene11!Liste37.RowSource
wobei "frm_OEbene11" der Name des UFo-Controls sein muss, nicht der Formname, - s. Link

2. hier
wegen
Zitat" ... WHERE OrdnerNr11 = " & Me!IDEbene1

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)

mad

Habe jetzt noch die richtigen Spalten in den Listenfeldern sichtbar geschalten, dann funktionierts perfekt.


Herzlichen Dank
mad