Neuigkeiten:

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

Mobiles Hauptmenü

Abfrage - n:n Beziehung - mehrere Datensätze in einen Datensatz zusammenführen

Begonnen von simon1987, März 06, 2013, 09:10:15

⏪ vorheriges - nächstes ⏩

simon1987

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


simon1987

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

DF6GL

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] )

simon1987

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

simon1987

OK!!

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

Many THX an DF6GL !!!!