Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: dfens am Juli 10, 2025, 13:27:40

Titel: Abfrage um Ergebnisse in einem feld zusammenzufassen
Beitrag von: dfens am Juli 10, 2025, 13:27:40
Wieder mal ein Problem - (vermutlich klein für Euch aber riesig für mich)
Annahme: DB mit 3 tabellen (AutoMarke Type und Farbe)
z.b. von BMW gibt es 2 Modelle: ein Modell in 2 Farben und ein anderes in 3 Farben
Ich krieg natürlich eine normale Abfrage hin. Spalte 1 Marke, Spalte 2 Type, Spalte 3 Farben. Alle Ergebnisse in einer eigenen Zeile.

Aber wie schaffe ich es, die Abfrage so zu gestalten, dass es nur eine einzige Zeile gibt, in der in einer Spalte nur die Marke steht, und in der zweiten Spalte alle verfügbaren Farben (durch Kommas getrennt) angeführt werden. Also aus den Datensätzen kombiniert in einer "Zelle" zusammengefasst. (Sozusagen "entnormalisiert";-) Geht das überhaupt ?Ziel.xls

Danke schon mal vorab !!
Titel: Re: Abfrage um Ergebnisse in einem feld zusammenzufassen
Beitrag von: Bitsqueezer am Juli 10, 2025, 23:13:59
Hallo,

gefühlte 1,5 Millionen mal gefragt... :)
"String Aggregat" ist das Zauberwort, hier ist eins von vielen Erklärungsvideos, wie man das macht (reiner Zufall, es geht auch um Autos und Farben...):
https://www.youtube.com/watch?app=desktop&v=ItCS-g1K2zk

Man braucht in Access dazu eine VBA-Funktion.

In SQL Server gibt es dazu eine Funktion:
https://learn.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-ver17

Gruß

Christian
Titel: Re: Abfrage um Ergebnisse in einem feld zusammenzufassen
Beitrag von: Knobbi38 am Juli 11, 2025, 10:36:40
Schau mal diesen Thread an, vielleicht ist da etwas für dich dabei:
https://www.access-o-mania.de/forum/index.php?topic=28002.0 (https://www.access-o-mania.de/forum/index.php?topic=28002.0)
Titel: Re: Abfrage um Ergebnisse in einem feld zusammenzufassen
Beitrag von: dfens am Juli 11, 2025, 15:11:07
Hallo und Danke erstmmal für die Hinweise und Tipps!
Der VBA Code für Access nützt mir leider nichts. Die Abfrage muss ich in SQL Code machen, da es sich um eine Oracle Datenbank handelt. Die Microsoft Seite ist für mich leider nicht verständlich. Ich kann grad mal die Basics in SQL und dort hab ich noch nie Hilfe gefunden. Aber gut zu wissen, dass ich nach STRING_AGG suchen muss. Das wird mir sicher helfen. Danke Euch !
Titel: Re: Abfrage um Ergebnisse in einem feld zusammenzufassen
Beitrag von: dfens am Juli 11, 2025, 15:16:18
Nachtrag: Gefunden und funktioniert. In Oracle nennt sich's LISTAGG und es bringt mir genau das was ich brauche. Danke nochmal für den Hinweis !
Titel: Re: Abfrage um Ergebnisse in einem feld zusammenzufassen
Beitrag von: Bitsqueezer am Juli 11, 2025, 15:50:53
Hallo,

ja, auf der Serverseite ist es auch besser aufgehoben.

Und in Access würde es auch funktionieren, weil Access SQL ja dem Backend-SQL "vorgeschaltet" ist, aber definitiv besser, alle Berechnungen auf der Serverseite zu machen und nur das Ergebnis an Access weiterzureichen.

"Nie Hilfe für Access" - dann bist Du ja u.a. hier genau richtig.

Gruß

Christian
Titel: Re: Abfrage um Ergebnisse in einem feld zusammenzufassen
Beitrag von: dfens am Juli 11, 2025, 16:35:55
Hallo Christian! Da gab es wohl ein kleines Missverständnis. Ich meinte, dass ich die Microsoft Seite nicht sehr hilfreich finde. Dort gibt es zar Beispiele - aber selten wird der Zusammenhang aufgezeigt (Struktur der Tabellen usw..)
Irgendwie hab ich Troubles, mich dort zurechtzufinden. Daher besuche ich bei Fragen DIESES Forum hier. Denn da wurde mir bisher immer perfekt geholfen - auch wenns nicht immer um Access geht ;-) Also nochmals DANKE DANKE DANKE ! Hat mir echt sehr geholfen der Tip! lg