Ich habe ein sfrmMediumGeneral mit folgenden Objekten
cmbMedientyp
cmbEditionsart
Datensatzherkunft des sfrmMediumGeneral:
SELECT tblMedium.MEDIUMID, tblMedium.ALBUMID, tblMedium.MEDIENTYPID, tblMedium.EDITIONSARTID, tblEditionsart.Editionsart, tblMedium.EAN
FROM tblMedium LEFT JOIN tblEditionsart ON tblMedium.EDITIONSARTID = tblEditionsart.EDITIONSARTID
WHERE (((tblMedium.ALBUMID)=2090));
WHERE Bedingung dient zum Testen
Datensatzherkunft des cmbEditionsart:
SELECT tblEditionsart.EditionsartID, tblEditionsart.Editionsart FROM tblEditionsart INNER JOIN tblMedientypEditionsart ON tblEditionsart.EditionsartID = tblMedientypEditionsart.EditionsartID WHERE (((tblMedientypEditionsart.MedientypID)=[Forms]![sfrmMediumGeneral]![cmbMedientyp])) ORDER BY tblEditionsart.Editionsart;
Ziel ist es, für jedes Medium die passenden Editionsarten anzubieten.
Das funktioniert so aber nicht, es wird nur die Editionsart für ein bestimmtes Medium zur Auswahl angeboten
Was übersehe ich?
Hallo,
Du musst die Datenherkunft dynamisch anpassen. Z.B. im Ereignis "Bei Fokuserhalt" des Feldes cmbEditionsart
Me.cmbEditionsart.RowSource "SELECT EditionsartID, Editionsart FROM tblEditionsart" _
& " INNER JOIN tblMedientypEditionsart ON tblEditionsart.EditionsartID = tblMedientypEditionsart.EditionsartID" _
& " WHERE MedientypID =" & Me.cmbMedientypID & " ORDER BY Editionsart"
Das Kombi muss sich natürlich auf die ID beziehen, nicht den Text.
OK, das klappt soweit, aber damit taucht der Wert erst auf wenn der Datensatz markiert ist.
Mein Anwendungsfall sieht wie folgt aus:
Das Hauptformular zeigt ein Musikalbum
Das Subform zeigt die Medien an (z.B: LP / CD / MC, usw.)
Ein Album kann mehrere Medien haben
Ich möchte natürlich auf einen Blick sehen, welches Medium mit welcher Editionsart vorhanden ist
Hallo,
wo markiert, im Hafo oder Ufo ?
Kannst Du mal ein Bild der Beziehungen posten ?
Zum Testen genügt es, das Ufo aufzurufen.
Den Code mußte ich minimal verändern, damit er funktioniert:
Me!cmbEditionsart.RowSource = "SELECT tblEditionsart.EditionsartID, tblEditionsart.Editionsart " & _
"FROM tblEditionsart INNER JOIN tblMedientypEditionsart ON tblEditionsart.EditionsartID = tblMedientypEditionsart.EditionsartID " & _
"WHERE tblMedientypEditionsart.MedientypID = " & Me!cmbMedientyp & " " & _
"ORDER BY tblEditionsart.Editionsart;"
Hier die Beziehungen:
beziehungen.png
Das Verhalten ist wie folgt
Ich öffne das sfrm, es werden 3 DS angezeigt
3 Medientypen werden angezeigt, Editionsart ist leer
Wechsle ich auf die Editionsart und verlasse das Feld (z.B. mit Pfeil rechts), so wird es mit dem richtigen Eintrag gefüllt
Wechsle ich von DS zu DS, so wird der Eintrag wieder "unsichtbar"
Was hingegen klappt, ist die Zuordnung von Editionsart zu Medium, welche ja in der tblMedientypEditionsart definiert ist
Hoffe mein Geschreibsel ist halbwegs verständlich