Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

3 abhängige Kombinationsfelder

Begonnen von apfel, Februar 06, 2013, 18:52:51

⏪ vorheriges - nächstes ⏩

apfel

Hallo!
Nach längerer Pause bin ich wieder da und suche nach Rat.

Ich habe ein Fahrzeugformular in dem man mittels 2 abhängiger Kombinationsfelder (cmb_hersteller, z.B. "VW"; cmb_modell, z.B. "Golf") Fixdaten über ein Fahrzeug abruft (Maße, Gewicht, etc.). Die Daten kommen aus 3 Tabellen: tbl_hersteller; tbl_modell; tbl_fahrzeug. Diese sind miteinander verknüpft.

Nun möchte ich ein weiteres Kombinationsfeld (cmb_motor), das Daten aus einer vierten Tabelle (tbl_motor) bezieht und diese im Formular zum jeweiligen Fahrzeugmodell anzeigt. Dabei sollen im Kombinationsfeld wirklich nur die Motoren für das jeweilige Modell (oder zumindest alle Motoren der Marke des Modells) zur Wahl stehen.

Nochmal zur Veranschaulichung des Formulars (was es letztendlich tun soll):
Wähle Hersteller durch cmb1 -> cmb2 zeigt Modelle des Herstellers -> wähle ein KFZ-Modell zur Anzeige der Daten
-> cmb3 zeigt Motoren passend zum Modell (oder Hersteller) -> Wahl eines Motors zeigt weitere Motordaten im Formular

Wie erstelle ich so ein drittes Kombinationsfeld? Wie setze ich die Beziehung(en)?
Mache ich das durch ein Unterformular? Wenn ja wäre eine kurze Erklärung oder ein Verweis auf helfende Seiten schön, da ich noch blutiger Anfänger bin :)

database

Hallo,

da es ja sein kann, dass ein Motor in unterschiedlichen Modellen eines Herstellers verbaut wird
würde ich empfehlen die Tabelle tbl_motor mit tbl_modell in eine m:n Beziehung zu setzen.
D.h. du brauchst eine weitere Tabelle tbl_ModellMotor mit den Fremdschlüsseln der tbl_motor und tbl_modell und zu diesen 1:n in Beziehung gesetzt

Das Kombifeld bezieht seine Daten aus der tbl_motor und reagiert für seine Datenherkunft auf die Auswahl  im cmb_modell
In die Abfrage, welche die Motoren ins Kombi liefert nimmst du die Zwischentabelle auf und legst ein Kriterium auf deren Feld modell_id_f (Fremdschlüssel zur Modell-Tabelle)

In die Ereignisprozedur 'Nach Aktualisierung' des cmb_modell schreibst du dann sinngemäß

Me.cmb_motor.Requery

... wodurch die Motorenliste für das gewählte Modell neu zusammengestellt wird.



apfel

Danke für die rasche Antwort,
ich werde die nächste Woche damit arbeiten und hier dann meine weiteren Fragen stellen (oder auch im besten Fall als gelöst darstellen ;) ).

apfel

#3
Herrlich! Es funktioniert! Das dritte Kombinationsfeld zeigt nun die Motoren an, die ich den verschiedenen Modellen zugeordnet habe.

Allerdings weiß ich nicht genau, wie die Daten des Motors aus tbl_motor im Formular angezeigt werden können, da die Datensatzquelle für das Formular die Fahrzeugeigenschaften sind (aus tbl_fahrzeug). Die Fahrzeugdaten werden also über einfache Textfelder angezeigt.

Frage:
Wie kann ich die Daten des Motors am besten im Formular darstellen?
Mein Ansatz wären Kombinationsfelder (z.B. "PS"; "Hubraum"; etc.), die in der Datensatzherkunft als Abfrage tbl_motor (und jeweiliges Feld, wie "PS") beziehen und ein Kriterium in der Motor ID zum cmb_motor haben.
Edit: Allerdings funktioniert mein Ansatz nicht ganz, bin für Ratschläge offen :)

apfel


database

Hallo,

ZitatWie kann ich die Daten des Motors am besten im Formular darstellen

blind in den Wind gereimt - mittels eines Unterformulars.

Das UFo sollte die Daten des ausgewählten Motors enthalten wenn die Datenherkunft eine Abfrage auf tblKfz ist die eine Einschränkung
auf die Motor_ID aufweist. Das 3. Kombifeld sollte dazu die Motor_ID als gebundenes Feld beinhalten.