Umstrukturieren untereinander liegender und gruppierter Datensätze (ein Art invertierte Kreuztabellen-Abfrage)

Hallo zusammen!

Ich suche nach einer Möglichkeit (Funktion), gruppierte und untereinander liegende Zellen-Inhalte in eine einzelne (Memo oder Text) Zelle zu packen. Wie im Beispiel zu sehen, soll dabei nach der Spalte „GRP“ gruppiert werden und dann die Inhalte der Spalte „Werte“ anhand der Sortierreihenfolge hintereinander, mit Trennzeichen getrennt in eine einzelne Zelle geschrieben werden.

Beispiel

Wichtig ist dabei, dass die maximale Anzahl von Sortier-Werten die maximal erlaubte Anzahl von Spalten überschreiten kann, sodass der Umweg über eine Kreuztabelle nicht möglich ist. Daher wird wohl der Weg über VBA unerlässlich sein, doch leider kenne ich mich damit zu wenig aus…
Weiterhin müssen sehr viele Datensätze behandelt werden. Nicht selten sind es hunderttausende und mehr.

Verwendete Access-Version: Access 2003

Ich komme hier einfach nicht weiter, weshalb ich auf diesem Wege um Hilfe bitten möchte.

Schon jetzt herzlichen Dank für Eure Unterstützung.

Hallo,

bei solchen Sachen hat die Frage nach deren Sinn hohe Priorität…

Ansonsten findest Du hier die „Funktion“:

http://dbwiki.net/wiki/VBA_Tipp:_Liste_per_SQL_aufbauen

Gruß
Franz,DF6GL

Hallo df6gl,

danke für die Antwort, welche leider für mich wenig hilfreich war. Unter dem angegebenen Link konnte ich keine Funktion finden, welche ich bei meinem Problem einsetzen könnte…

Gruss!

SQL ist eine Abfragesprache für Datenbanken , damit kannst Du alles machen wie Du es Dir vorstellst , keine Begrenzung von anzahl an Feldern etc , Tabellen verbinden mit bestimmten kriterien .
Allerdings muss auch gesagt werden das Access keine „echte“ Datenbank ist , bei großen Datenmengen stirbt Access . Und die zugriffzeit ist auch entspechend langsam .
Vielleicht wäre es sinnvoller das ganze gleich in einer echten Datenbank zu machen , die für solche Aufgaben optimiert ist .

siehe
http://www.tensai.de/Seite3/entscheidungshilfeaccessvssqlserver.pdf

Hallo,

ich denke mal, eine Migration auf SQL-Server löst das Problem auch nicht… wobei dann auch ganz andere Strategien für eine gute Performance anzuwenden wären. Die angegebene Anzahl von DS steckt auch Access locker weg, solange die Dateigröße (des BE deutlich) unter 2 GB bleibt.

welche leider für mich wenig hilfreich war. Unter dem angegebenen Link konnte ich keine Funktion finden, welche ich bei meinem Problem einsetzen könnte…

Versteh ich nicht… Die folgende Funktion steht beim angegeben Link:

Public Function SQLListe(ByVal SQL As String, _
Optional ByVal SepR As String = „;“, Optional ByVal SepF As String = „;“, _
Optional ByVal NoNullFields As Boolean = True) As String

’ Die Felder, die mit dem SQL-String gewonnen werden,
’ werden feldweise mit SepF, datensatzweise mit SepR getrennt
’ Wenn NoNullFields gesetzt ist, werden leere Felder unterdrückt

Dim DB As DAO.Database, RS As DAO.Recordset, I As Long, Res As String, Tmp As String
On Error Resume Next
.
.
.
.

Gruß
Franz,DF6GL