Neuigkeiten:

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

Mobiles Hauptmenü

Kaskadierte Kombinationsfelder

Begonnen von Aendu, April 01, 2019, 09:00:38

⏪ vorheriges - nächstes ⏩

Aendu

Guten Morgen
Ich komme mit den kaskadierten Kombinationsfeldern nicht mehr weiter. Kann mir bitte jemand helfen. Die Ausgangslage ist folgendermassen:
Das Tool dient zur Erfassung von gebäudetechnischen Anlagen. Diese Anlagen werden einer Gattung zugeordnet. Insgesamt gibt es ca 700 Gattungen. Um nicht immer sämtliche Einträge durchscrollen zu müssen, soll die Auswahl kaskadiert werden. Die Kaskade ist folgendermassen:

- tblGruppe
- tblUntergruppe
- tblGattung

Die Tabellen sind mit einer 1:N Beziehung untereinander verbunden. Im Formular habe ich 3 Kombinationsfelder eingefügt, welchen ich die entsprechende Tabelle als Datensatzherkunft zugewiesen habe. Der Abfrage Generator filtert, zum Beispiel die Listeneinträge vom Kombinationsfeld Untergruppe entsprechend der ausgewählten Gruppe, und genau das gleiche für die Gattung. Nach jedem Wechsel einer Auswahl, werden die nachfolgenden Kombinaltionsfelder aktualisiert. Soweit funktioniert bei einem Datensatz alles sehr gut.
Nun wenn ich aber einen zweiten Datensatz erfassen will, werden nach dem Ändern der Gruppe, die Einträge in der Untergruppe und Gattung vom ersten Datensatz gelöscht. Dieses Verhalten zieht sich durch, auch wenn weitere Datensätze erfasst werden.
Ich denke die kaskadierten Kombinationsfelder sollten keine Hexerei sein, aber leider krige ich das einfach nicht hin.
Grüsse Ändu

MzKlMu

Hallo,
typisches Problem abhängiger Kombis.
Die Beziehungen sind so auch nicht richtig. Das ist überbestimmt. Es wird nur die Beziehung zur Gattung benötigt (Siehe Bild). Hast Du die Gattung ist auch Gruppe und Untergruppe eindeutig festgelegt. Die beiden anderen Kombis kommen zur Vorauswahl ungebunden in den Formularkopf. Gruppe und Untergruppe können dann über eine Abfrage angezeigt werden.
Für das dann verbleibende Kombi muss aber auch getrickst werden. Das Kombi so klein schieben, dass man nur den Pfeil zum Aufklappen sieht. Links neben den Pfeil ein normales Textfeld das den Klartext der Gattung über eine Abfrage anzeigt.
Gruß Klaus

Aendu

Hallo Klaus
Vielen Dank für die Antwort. Ich werde dieses versuchen. Noch zwei Fragen:
- Wie lösche ich den Inhalt der ungebundenen Kombi Felder wenn ich einen neuen Datensatz erstelle oder einen bestehenden bearbeiten will? Ich habe etwas ähnliches bereits versucht, aber leider behielten die Kombis die Auswahl wenn die Datensätze geändert wurden.

- Wieso muss das dritte Kombi (Gattung) bis auf den Pfeil reduziert werden? Kann ich da nicht den Inhalt über anzuzeigende Spalten steuern?
Grüsse Ändu

MzKlMu

Hallo,
ZitatWieso muss das dritte Kombi (Gattung) bis auf den Pfeil reduziert werden?
Weil Du auch mit einem Kombi exakt das gleiche Problem hast wie jetzt auch.
Wenn die Kombis leer sind, würde das Kombi nichts anzeigen, denn die Datenherkunft für das eine Kombi liefert ja wegen der leeren übergeordneten Kombis keinen Datensatz.
Das ist ganz normale Verhalten eines abhängigen Kombis und nur durch solche Tricks zu umgehen.

Die Auswahl eines Kombi wird durch die Zuweisung von NULL zurücjkgesetzt.
Me.KombifeldName = Null 
Gruß Klaus

Aendu

Cool das funktioniert soweit! Herzlichen Dank Klaus!
Nur mit dem Zurücksetzen der ungebundenen Kombis habe ich noch ein Problem. Leider bin ich mit SQL oder VBA nicht vertraut. Wie kann ich diesen Befehl ausführen lassen, wenn ich zwischen den Datensätze wechsle, oder einen neuen Datensatz erstelle? Ich habe verschidene sachen versucht, zum Teil habe ich eine Fehlermeldung erhalten, dass Me. nicht erkannt wurde (So ähnlich)

MzKlMu

Hallo,
im Ereiegnis "Beim Anzeigen" kannst Du beide Kombis auf NULL (=keine Anzeige) setzen.
Me.Kombifeld1 = NULL
Me.Kombifeld2 = NULL

Das wirkt beim Datensatzwecheld, also auch bei einem neuen Datensatz.
Gruß Klaus

Aendu

Super, das klappt auch! Vielen Dank für die Unterstützung!