# [Access] Abfrage in Endlosschleife auf aktuellen Datensatz beziehen?



## Ardaric (21. Juli 2008)

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!  Bitte helft mir!
Ich habe die Tabelle angefügt.

Danke!


----------



## Zvoni (30. Juli 2008)

Ardaric hat gesagt.:


> 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.
> 
> ...



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:

```
SELECT SPSprache From Sprache,Buch,MixBuchSprache WHERE MixBuchSprache.BuchID=" & txtBuchID.Text & " and Sprache.ID=MixBuchSprache.SpracheID
```


----------

