Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: simon1987 am März 06, 2013, 09:10:15

Titel: Abfrage - n:n Beziehung - mehrere Datensätze in einen Datensatz zusammenführen
Beitrag von: simon1987 am März 06, 2013, 09:10:15
Hallo liebe Access-Freunde,

ich muss derzeit für die Hochschule eine Hausarbeit anfertigen, wobei es um eine Weinhandlung geht. Ich hab schon versucht die Suche zu benutzen, aber irgendwie habe ich zu meinem konkreten Problem nichts gefunden. Wahrscheinlich auch, weil ich nicht genau weiß, wonach ich suchen soll.
Darum bin ich voll auf eure Hilfe angewiesen. Würde mich echt freuen, wenn sich jemand meinem Problem annimmt.

Kurz ein paar Infos vorab:
Ich soll die Datenbank im Access 2003 Format speichern, erstelle sie aber mit Access 2013. Ist ja kein Problem, kann sie ja als *.mdb speichern und rufe die Datenbank zur Präsentation auch mit Access 2013 auf.

Nun zu meinem Problem:
Ich habe einmal eine Tabelle Wein, RebsorteWein und Rebsorte. Über die Tabelle RebsorteWein habe ich eine n:n Beziehung erstellt. Ein Wein kann demnach aus mehreren Rebsorten bestehen bzw. eine Rebsorte kann mehreren Weinen zugeordnet sein.

Jetzt ist es so, dass einige Weine keinen direkten Namen besitzen, sondern aus Jahrgang, Rebsorte (z.B. Lemberger), Geschmack (z.B. trocken) und so weiter bestehen.
Diesen Namen möchte ich mit einer Abfrage erstellen.
Das eigentliche Problem ist jetzt, dass ich gerne bei mehreren Rebsorten, die einem Wein zugeordnet sind, die Sorten nacheinander weg in einem Namen haben möchte.


Tabelle Wein           Tabelle RebsorteWein                                                               Tabelle Rebsorte

WeinID                   RebsorteWeinID       WeinID         RebsorteID                       RebsorteID     Sorte
1                              1                                 1                   1                                        1                     Riesling
2                              2                                 1                   2                                        2                     Lemberger
3                              3

WeinID (Tabelle Wein), RebsorteWeinID (Tabelle RebsorteWeinID) und RebsorteID (Tabelle Rebsorte) sind Primärschlüssel (AutoWert)
Unnötige Feldnamen hab ich weggelassen.
Nach den Tabelle hat also WeinID 1 die Rebsorte 1 und 2 zugewiesen bekommen.

Wie realisieren ich jetzt in der Abfrage, dass ich "Sorte1 Sorte2 ... Sorte n  und so weiter" in einem Namen ausgegeben bekomme?

Vielleicht nochmal in Kurzform:
3 Tabellen (siehe oben) über n:n Beziehung miteinander verbunden. Jetzt will ich zu einer WeinID mit einer Abfrage alle Sorten, die diesem Wein zugeordnet sind, hintereinander weg als Abfrageergebnis ausgegeben bekommen.

Beispiel: "Rebsorte1 Rebsorte2 .. Rebsorte n"

Ich hoffe, ich konnte das Problem so gut es geht erläutern :)
Ich habe auch ein wenig SQL und VBA Erfahrung, daran soll es nicht scheitern.

VIELEN VIELEN DANK!

Grüße
Simon

P.S. hatte schon irgendwie versucht das Problem anhand dieses Beitrags zu lösen.... hat nicht geklappt :(
http://www.access-o-mania.de/forum/index.php?topic=12917.0
Titel: Re: Abfrage - n:n Beziehung - mehrere Datensätze in einen Datensatz zusammenführen
Beitrag von: DF6GL am März 06, 2013, 10:04:36
Hallo,



schau Dir diesen Link mal an:
http://www.dbwiki.net/wiki/VBA_Tipp:_Liste_per_SQL_aufbauen
Titel: Re: Abfrage - n:n Beziehung - mehrere Datensätze in einen Datensatz zusammenführen
Beitrag von: simon1987 am März 06, 2013, 10:17:10
Danke für den Link! Aber wie ich das auf mein Problem übertrage ist mir nicht ganz so klar... :(
Könntest du mir da ein wenig Hilfestellung geben...
Ich weiß nicht einmal, wo ich da im VBA Code ansetzen soll, bzw. wie ich den VBA Code in meine Abfrage implementiere... :-/

VIELEN DANK!!!
Titel: Re: Abfrage - n:n Beziehung - mehrere Datensätze in einen Datensatz zusammenführen
Beitrag von: DF6GL am März 06, 2013, 10:29:29
Hallo,


naja,   die Funktion kopierst Du in ein Standard-Modul (Datenbankfenster/Module, bzw. Navibereich/Module).


In der Abfrage (mit Basis zu RebsorteWein) schreibst Du den Aufruf der Funktion in eine separate Abfragespalte:


Feld:     WeinSorten: SQLListe("SELECT Rebsortenname FROM Rebsorte WHERE RebsorteID=" & [RebsorteID] )
Titel: Re: Abfrage - n:n Beziehung - mehrere Datensätze in einen Datensatz zusammenführen
Beitrag von: simon1987 am März 06, 2013, 11:03:38
Jetzt habe ich eine Abfrage mit der WeinID und den Rebsorten... nun muss ich die noch zusammenführen...

Abfrage1

WeinID       WeinSorten
1                Riesling
1                Lemberger

jetzt habe ich die Tabelle, die für die n:n Beziehung nötig war, umgangen.. oder nicht??

Wie führe ich das denn jetzt zusammen, wenn WeinID = WeinID  dann "Riesling Lemberger"...

kriege das mit diesem VBA Code nicht umgesetzt: http://www.access-o-mania.de/forum/index.php?topic=12917.0

oder stell ich mich zu dumm an? :D
Titel: Re: Abfrage - n:n Beziehung - mehrere Datensätze in einen Datensatz zusammenführen
Beitrag von: simon1987 am März 06, 2013, 11:17:34
OK!!

Hat sich erledigt... hab es hinbekommen...

Many THX an DF6GL !!!!