Neuigkeiten:

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

Mobiles Hauptmenü

Listenfelder in Beziehung zueinander möglich?

Begonnen von Elfenhain, Mai 13, 2017, 22:33:47

⏪ vorheriges - nächstes ⏩

Elfenhain

Hallo Community,

ich bin Accessneuling und habe eine Frage:

Ich habe mehrere Tabellen welche alle in Beziehung verkettet sind.

Beispiel: Kunde -> Bestellungen -> Produkte der Bestellung -> Eigenschaften der Produkte

Das Beispiel rein theoretisch. Ich möchte nur damit ausdrücken, dass ein Kunde mehrere Bestellungen haben kann, darin mehrere Produkte sind. ect.

Ich möchte nun ein Formular über den Kunden erstellen und im Listenfeld 1 sollen alle Bestellungen des ausgewählten Kunden stehen.
Mit Auswahl der Bestellung im Listenfeld 1 soll das Listenfeld 2 mit den Produkten gefüllt werden und mit Auswahl des Produktes die entsprechenden Eigenschaften in Listenfeld 3 geladen werden.

Mir fehlt da die entsprechende Idee. Ich habe bereits ein Formular Kunde erstellt und ein Listenfeld Bestellung, welches auch aus der Tabelle "Bestellungen" gefüllt wird. Allerdings wird das bisher ohne Abhängigkeiten gefüllt und nicht mit den Datensatz vom ausgewählten Kunden im Formular.

Ist das mit den Listenfeldern überhaupt möglich? Oder muss ich das evtl. im VBA programmieren? Jemand eine Idee?

Danke schonmal.


Christian

Lachtaube

Anhängige Kombi- und/oder Listenfelder (solltest Du als Suchbegriff in Verbindung mit Access im WWW verwenden) lassen sich in vielen Varianten realisieren. Nach dem Aktualisieren eines Punkts muss ein entsprechendes Ereignis ausgelöst werden, welches die Nachfolger an die Auswahl anpasst.

Verwendet man in dem Datensatzherkünften Formularparameter, genügt ein Absetzen der Requery-Methode auf den Nachfolger; eine andere Version besteht im Text-Zusammensetzen und Zuweisung der Datensatzherkunft für den Nachfolger; möglich ist auch das Öffnen eines Recordsets und dessen Zuweisung an den Nachfolger.

Ist die Kaskade länger, muss man dafür sorgen, dass auch die Nachfolger vom Nachfolger ihre Aktualisierung vornehmen. Wähle ich den Kunden Müller, so sollten sich nur alle seine Bestellungen zeigen - die Produkte und Eigenschaften dürfen aber noch nicht angezeigt werden, weil (noch) keine seiner Bestellungen ausgewählt wurde.
Grüße von der (⌒▽⌒)

Elfenhain

Vielen Dank für die Antwort. Ich habe inzwischen auch ein Video für eine solche Verkettung von Listenfeldern gefunden.

Bleibt für mich noch die Frage, wie ich das erste Listenfeld in Anhängigkeit des im Kundenfomulars gewählten Datensatzes füllen lasse.

Lachtaube

Um bei den Kunden zu bleiben, kannst Du eine interne oder gespeicherte Abfrage für die RecordSource (Datensatzherkunft) mit den relevanten Feldern verwenden.SELECT KundeId, KundenName, ... FROM KundenTabelle
Wichtig ist, dass Du die Listenfelder (bei mehr als 1000 Einträgen würde ich eine weitere Vorgliederung voranstellen, z. Bsp. nach Anfangsbuchsabe des Kundennamens) nicht überlädst - sonst wird die Sache schnell unüberschaubar und vom Anwender schlecht steuerbar.
Grüße von der (⌒▽⌒)

MzKlMu

Hallo,
die geschilderten Umstaände entsprechen nicht den tatsächlichen Gegebenheiten. Siehe hierzu:

http://www.office-loesung.de/p/viewtopic.php?f=167&t=736409

PS:
Das gleichzeitige Fragen in verschieden Foren (Grossposting) ist unerwünscht und verstößt auch gegen die Forenregeln.
Gruß Klaus