Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: castor1 am Februar 24, 2015, 09:36:14

Titel: Abhängige Kombi-Felder aktualisieren
Beitrag von: castor1 am Februar 24, 2015, 09:36:14
Hallo!

Als absoluter rookie (!!) habe ich folgendes Problem zu meistern: In einem UFo habe ich drei abhängige Kombi-felder (cboAGOrganisation-->cboAGAbteilung-->cboAGUnterabteilung), deren Werte in je einer Tabelle stehen. In cboAGOrganisation werden alle Organisationen zur Auswahl aus der entsprechenden Tabelle angezeigt. Nach Auswahl werden in cboAGAbteilung nur jene Abteilungen aus einer Tabelle angezeigt, die der ausgewählten Organisation zugehören. Das habe ich mittels folgender Select-Anweisung in den Eigenschaften-Datensatzherkunft des cbo geschafft:
SELECT [tbl_AGAbteilung].[ID_AGAbteilung], [tbl_AGAbteilung].[txt_Name], [tbl_AGAbteilung].[ID_AGOrganisation] FROM tbl_AGAbteilung WHERE ID_AGOrganisation=cboAGOrganisation;

Mit dem dritten cbo (cboAGUnterabteilung) bin ich gleich verfahren, also:
SELECT [tbl_AGUnterabteilung].[ID_AGUnterabteilung], [tbl_AGUnterabteilung].[txt_Name], [tbl_AGUnterabteilung].[ID_AGAbteilung], [tbl_AGUnterabteilung].[ID_AGOrganisation] FROM tbl_AGUnterabteilung WHERE ID_AGAbteilung=cboAGAbteilung;

Damit die Einträge in den cbo nun je nach Auswahl aktualisiert werden, habe ich zunächst folgenden Code in die Ereignisprozedur "nach Aktualisierung" von cboAGOrganisation Code eingefügt:
Private Sub cboAGOrganisation_AfterUpdate()
cboAGAbteilung.Requery End Sub


In die Ereignisprozedur "nach Aktualisierung" von cboAGAbteilung habe ich folgenden Code eingefügt:
Private Sub cboAGAbteilung_AfterUpdate()
cboAGUnterabteilung.Requery
End Sub


Nun verhält es sich folgendermaßen: Wenn ich cboAGOrganisation aktualisiere, dann aktualisiert sich cboAGAbteilung, aber nicht auch cboAGUnterabteilung. Wie schaffe ich es, dass nach Aktualisierung von cboAGOrganisation BEIDE unterstehenden cbos aktualisiert werden?

Danke für eure Anregungen!
Titel: Re: Abhängige Kombi-Felder aktualisieren
Beitrag von: MaggieMay am Februar 24, 2015, 11:42:28
Hallo,

nach Aktualisierung des 1. Kombifeldes sollten Kombi-2 und Kombi-3 eigentlich leer sein bzw. geleert werden. Erst nach Eingabe in Kombi-2 aktualisiert sich die Datensatzherkunft in Kombi-3, das sollte doch passen.
Titel: Re: Abhängige Kombi-Felder aktualisieren
Beitrag von: DF6GL am Februar 24, 2015, 11:46:27
Hallo,


Zitatdann aktualisiert sich cboAGAbteilung, aber nicht auch cboAGUnterabteilung.

Welchen Sinn hätte das denn? Es wurde ja noch keine AGAbteilung ausgewählt...

Eine von mehreren "Lösungen" wäre, das 3. Kombi erst nach der Auswahl im 2. Kombi auf sichtbar umzuschalten.
Titel: Re: Abhängige Kombi-Felder aktualisieren
Beitrag von: castor1 am Februar 24, 2015, 11:54:02
Hallo und danke für die Antwort!
Prinzipiell passt das auch. Aber wenn ich etwa Kombi 1 auswähle, dann dazu Kombi 2 und Kombi 3 auswähle und DANN nochmal Kombi 1 ändere, dann aktualisiert sich zwar Kombi 2 aufgrund der Auswahl in Kombi 1, aber in Kombi 3 bleibt der vorherige Eintrag, der nun nicht mehr zur Auswahl in Kombi 1 passt. Daher sollt bei Änderung des Kombi 1 auch immer Kombi 3 geleert werden.

Danke nochmal für die Antworten!
Titel: Re: Abhängige Kombi-Felder aktualisieren
Beitrag von: DF6GL am Februar 24, 2015, 12:24:10
Hallo,

versuch mal:


Private Sub cboAGOrganisation_AfterUpdate()
cboAGAbteilung.Requery
cboAGUnterabteilung.Requery
End Sub


Titel: Re: Abhängige Kombi-Felder aktualisieren
Beitrag von: MaggieMay am Februar 24, 2015, 13:07:26
oder so:Private Sub cboAGOrganisation_AfterUpdate()
    Me.cboAGAbteilung.Requery
    Me.cboAGUnterabteilung = Null
End Sub


Zusätzlich:
Die Auswahl in Kombi-3 ohne vorherige Auswahl in Kombi-2 sollte unterbunden werden.
Entsprechendes gilt für Kombi-2.
Titel: Re: Abhängige Kombi-Felder aktualisieren
Beitrag von: castor1 am Februar 24, 2015, 13:25:44
@DF6GL: das war mein erster Ansatz, funktioniert allerdings nicht.

@MaggieMay: damit wird zwar die Anzeige im Kombi 3 geleert, im Dropdown bleiben aber die "alten" Wahlmöglichkeiten.
ZitatDie Auswahl in Kombi-3 ohne vorherige Auswahl in Kombi-2 sollte unterbunden werden.
Wie kann ich das bewerkstelligen?

LG
Titel: Re: Abhängige Kombi-Felder aktualisieren
Beitrag von: MaggieMay am Februar 24, 2015, 13:34:57
Zitatim Dropdown bleiben aber die "alten" Wahlmöglichkeiten.
Das ist richtig, aber das siehst du ja nicht, und nach Auswahl in Kombi-2 wird es aktualisiert.

ZitatWie kann ich das bewerkstelligen?
Bspw. so:Private Sub cboAGUnterabteilung_BeforeUpdate(Cancel As Integer)
    If IsNull(Me.cboAGAbteilung) Then
        MsgBox "Bitte zuerst die Abteilung auswählen!"
        Cancel = True
        Me.cboAGAbteilung.SetFocus
    End If
End Sub
Titel: Re: Abhängige Kombi-Felder aktualisieren
Beitrag von: DF6GL am Februar 24, 2015, 13:49:21
Hi,

noch ein bisschen Schmalz:


SELECT [tbl_AGUnterabteilung].[ID_AGUnterabteilung], [tbl_AGUnterabteilung].[txt_Name], [tbl_AGUnterabteilung].[ID_AGAbteilung], [tbl_AGUnterabteilung].[ID_AGOrganisation] FROM tbl_AGUnterabteilung WHERE ID_AGAbteilung=nz([cboAGAbteilung],0)



bei  Deinem "ersten Ansatz".

Vernünftige Lösungen wären, das 2. und 3. Kombi immer erst nach Auswahl des vorangegangenen auf sichtbar zu setzen oder die Datensatzherkunft des/der folgenden Kombis jeweils in den Afterupdate-Prozeduren mit einem passenden SQL-String zu versorgen.
Titel: Re: Abhängige Kombi-Felder aktualisieren
Beitrag von: castor1 am Februar 26, 2015, 09:14:52
Liebe MaggieMay, lieber Franz,

danke für eure Tipps, die mir sehr weitergeholfen haben!

Alles Gute,
castor