[Access] Abfrage in Endlosschleife auf aktuellen Datensatz beziehen?

Ardaric

Erfahrenes Mitglied
Hallo,

in einem Endlosformular "Buch" liste ich Autoren und Bücher auf. Ich habe mit einer 1:n-Beziehung noch angegeben, in welchen Sprachen welches Buch vorliegt.

Das Endlosformular soll so aussehen:
Textfeld "Autor" | Textfeld "Buch" | Kombinationsfeld "verfügbare Sprachen"

Das Kombinationsfeld "verfügbare Sprachen" soll die Sprachen des Jeweiligen Datensatzes beinhalten. Die Grundsätzliche Abfrage lautet:
SELECT Sprache.sprache
FROM Buch
INNER JOIN Sprache ON Buch.ID=Sprache.buch_id;

Jetzt listet mir Access aber logischerweise in jedem Datensatz alle Sprachen jedes Buches auf. Wie kann ich Access sagen, dass nur die Sprachen des jeweiligen Datensatzes aufgelistet werden sollen?

Ich kann und kann da keine Lösung finden! :confused: Bitte helft mir!
Ich habe die Tabelle angefügt.

Danke!
 

Anhänge

  • Endlosformular.zip
    123 KB · Aufrufe: 14
Hallo,

in einem Endlosformular "Buch" liste ich Autoren und Bücher auf. Ich habe mit einer 1:n-Beziehung noch angegeben, in welchen Sprachen welches Buch vorliegt.

Das Endlosformular soll so aussehen:
Textfeld "Autor" | Textfeld "Buch" | Kombinationsfeld "verfügbare Sprachen"

Das Kombinationsfeld "verfügbare Sprachen" soll die Sprachen des Jeweiligen Datensatzes beinhalten. Die Grundsätzliche Abfrage lautet:
SELECT Sprache.sprache
FROM Buch
INNER JOIN Sprache ON Buch.ID=Sprache.buch_id;

Jetzt listet mir Access aber logischerweise in jedem Datensatz alle Sprachen jedes Buches auf. Wie kann ich Access sagen, dass nur die Sprachen des jeweiligen Datensatzes aufgelistet werden sollen?

Ich kann und kann da keine Lösung finden! :confused: Bitte helft mir!
Ich habe die Tabelle angefügt.

Danke!

Ich glaube dein Problem liegt eher, dass du eine 1:n Beziehung genommen hast. Denk mal nach:
1 Buch kann in n Sprachen vorkommen
Für 1 Sprache kann es n Bücher geben

Das klingt für mich eher nach einer n:m Beziehung, die du über eine separate Tabelle abbilden kannst
Table1 - Buch
ID
Autor
Titel

Table2 - Sprache
ID
SPSprache

Table3 - MixBuchSprache
BuchID
SpracheID

Das Combo-Feld kannst du dann per SQL auffüllen:
SQL:
SELECT SPSprache From Sprache,Buch,MixBuchSprache WHERE MixBuchSprache.BuchID=" & txtBuchID.Text & " and Sprache.ID=MixBuchSprache.SpracheID
 
Zuletzt bearbeitet:
Zurück