Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Nudelskopf am April 16, 2020, 15:04:05

Titel: Formular mit Kombifeldern aus 3 Tabellen
Beitrag von: Nudelskopf am April 16, 2020, 15:04:05
Hallo zusammen,

ich versuche ein Formular zu erstellen. Hierzu habe ich 3 Tabellen -> Gerätetyp (Server, PC, Notebook, ...); Hersteller (HP, Dell, ...); Modell (...)
Bis jetzt habe ich nur geschafft, dass man die Hersteller auswählen kann und dort werden alle Modelle aufgelistet.
Aber ich möchte dass man zuerst ein Gerätetyp auswählt, dann Hersteller und zuletzt Modell.
Bsp.: 1. Typ: Notebook
         2. Hersteller: HP
         3. Modell: EliteBook

Ich würde mich sehr freuen, wenn jemand ein Tipp für mich hat.

Vielen Dank und Gruß  :)
Titel: Re: Formular mit Kombifeldern aus 3 Tabellen
Beitrag von: DF6GL am April 16, 2020, 16:05:36
Hallo,

nachdem Du uns im Unklaren über den Tabellenaufbau, Tabellenfelder und Beziehungen lässt, nur dieser Hinweis:

http://www.donkarl.com/?FAQ4.36
Titel: Re: Formular mit Kombifeldern aus 3 Tabellen
Beitrag von: Nudelskopf am April 16, 2020, 16:18:27
Hallo,

ich habe mal ein Screenshot gemacht. Dort sieht man die 3 Tabellen mit den jeweiligen Beziehungen.
Screenshot ist im Anhang.
Titel: Re: Formular mit Kombifeldern aus 3 Tabellen
Beitrag von: Nudelskopf am April 17, 2020, 10:53:40
Hallo zusammen,

nach mehreren Versuchen habe ich es nun geschafft.
Vielleicht gibt es eine bessere Lösung.
Hier mein Lösungsweg:

Ich habe 3 Tabellen:
Typ
Hersteller
Modell

Beziehungen zwischen den Tabellen
Hersteller -> Modell (1:n)
Typ -> Modell (1:n)

Im Formular sind diese als Kombifelder.
Bei der Erstellung hat ein Forenbeitrag geholfen: http://www.office-loesung.de/ftopic6700_0_0_asc.php (http://www.office-loesung.de/ftopic6700_0_0_asc.php)

Und dann in VBA:
Private Sub cbxT0_AfterUpdate()
    Me!cbxT1.RowSource = "SELECT Hersteller.Hersteller_ID, Hersteller.Hersteller " & _
                         "FROM Typ INNER JOIN (Hersteller INNER JOIN Modell ON Hersteller.[Hersteller_ID] = Modell.[Hersteller_ID]) ON Typ.[Typ_ID] = Modell.[Typ_ID] " & _
                         "GROUP BY Hersteller.Hersteller_ID, Hersteller.Hersteller, Typ.Typ_ID " & _
                         "HAVING Typ.Typ_ID = " & Me!cbxT0
                         
    cbxT1_AfterUpdate

End Sub

Private Sub cbxT1_AfterUpdate()
    Me!cbxT2.RowSource = "SELECT Modell_ID, Modell " & _
                         "FROM Modell " & _
                         "WHERE Hersteller_ID = " & Me!cbxT1 & "And Typ_ID = " & Me!cbxT0
End Sub


Nun kann ich in einem Formular nach Gerätetyp -> Hersteller -> Modell vorgehen.
Vielleicht hilft meine Lösung jemanden weiter.

Gruß  :)
Titel: Re: Formular mit Kombifeldern aus 3 Tabellen
Beitrag von: Nudelskopf am April 27, 2020, 17:27:27
Hallo zusammen,

soweit läuft das ganze. Ich kann per Kombifeld Datensätze in die Tabelle hinzufügen. Die Kombifelder zeigen auch das Richtige an. Wenn ich bei Typ "Notebook" wähle werden die Hersteller mit Notebooks angezeigt. Zuletzt noch das passende Modell vom ausgewählten Hersteller.
Aber wenn ich das Formular speicher -> schließe und dann öffne wird bei mir nur der Datensatz Typ angezeigt (siehe Anhang).
Wenn ich das Kombifeld "Hersteller" ausklappe, wird nichts angezeigt.
Gibt es eine Möglichkeit meine Datensätze angezeigt zu bekommen und auch die Kombifelder?

Danke und Gruß  :)
Titel: Re: Formular mit Kombifeldern aus 3 Tabellen
Beitrag von: J.D am April 29, 2020, 11:04:20
Werden deine Optionen die du gewählt hast auch in der Datenbank abgelegt?
wenn ja musst du deine Anfrage auf dem Formular entsprechend anpassen oder die Felder überprüfen!

Grüsse J.D
Titel: Re: Formular mit Kombifeldern aus 3 Tabellen
Beitrag von: Beaker s.a. am April 29, 2020, 16:59:58
@Nudelskopf
Du musst die Rowsources der abhängigen Kombis zusätzlich "Beim Anzeigen"
(Form_Current) setzen.
gruss ekkehard
Titel: Re: Formular mit Kombifeldern aus 3 Tabellen
Beitrag von: Nudelskopf am April 30, 2020, 11:38:46
Zitat von: Beaker s.a. am April 29, 2020, 16:59:58
@Nudelskopf
Du musst die Rowsources der abhängigen Kombis zusätzlich "Beim Anzeigen"
(Form_Current) setzen.
gruss ekkehard

Danke  ;D
Das läuft jetzt