Office: (Office 2010) Abfrage hierarchische Daten unbekannter Tiefe

Helfe beim Thema Abfrage hierarchische Daten unbekannter Tiefe in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Einen wunderschönen guten Morgen ins Forum, ich habe folgendes Problem bzw. Frage zu nem Denkansatz: Ich habe drei Tabellen (vereinfacht):... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von BCoder, 3. Juli 2013.

  1. Abfrage hierarchische Daten unbekannter Tiefe


    Einen wunderschönen guten Morgen ins Forum,

    ich habe folgendes Problem bzw. Frage zu nem Denkansatz:

    Ich habe drei Tabellen (vereinfacht):
    [Struktur]: ID, Bezeichner, PID
    [Konto]: ID, Bezeichner
    [KontoStruktur]: kID, sID

    In [Struktur] ist eine Baumstruktur abgebildet, die meine Konten quasi kategorisiert. Die Beziehung läuft über PID, als übergeordnetes Element in der gleichen Tabelle (Parent).
    In [Konto] sind alle vorhandenen Konten abgelegt.
    In [KontoStruktur] werden beide n:m verknüpft. Jedem Blatt im Baum kann ein Konto zugeordnet werden, somit kann ich verschiedenen Kontenstrukturen abbilden.

    Beispiel
    Konto1 ist in der Struktur mit Stufe3 verknüpft
    [Struktur]
    1,StufeA1,0
    2,StufeA2,1
    3,StufeA3,2
    4,StufeB1,0
    5,StufeB2,4
    6StufeB3,5

    [Konto]
    1,Konto1
    2,Konto2

    [KontoStruktur]
    1,3
    2,6

    Nun besteht die Anforderung, dass ich alle Konten und deren Struktur-Informationen in eine Tabelle(Excel) bringe ohne dabei Information pro Datensatz zu verlieren.

    Zieltabelle:
    StufeA1|StufeA2|StufeA3|Konto1
    StufeB1|StufeB2|StufeB3|Konto2
    ...

    Das schwierige an der Geschichte ist nun, dass ich vorher nicht sagen kann wie tief die möglichen Strukturen gehen, da der Aufbau der Struktur vom User durchgeführt werden kann,
    d.h. ich benötige eine flexible Abfrage, die mir pro Konto die Struktur unbekannter tiefe n liefert.

    Mein Ansatz an sich wäre es, den Recordset als ADO selbst zusammenzubauen und diesen dann zu exportieren.

    Kann ich so eine Aufgabe mit Abfragen in Access lösen?
    Aber vielleicht hat ja jemand bereits Erfahrung oder Ideen für solch eine Aufgabenstellung?

    Danke und
    schicke Grüße aus Berlin
    Danny

    :)
     
    BCoder, 3. Juli 2013
    #1
  2. Hallo!

    So eine ähnliche Anforderung habe ich mal hiermit gelöst.
    Allerdings musst du da den Umweg über ein TreeView gehen. Dann sollte aber die unbekannte Strukturtiefe kein Problem sein.

    HTH
    Ingo
     
    Claypool, 5. Juli 2013
    #2
  3. ...klinge irgendwie nach Strukturvertrieb...

    Über eine einfache Abfrage (SQL) wird eine unbekannte Tiefe der Struktur nicht auflösbar sein.
    Das Stichwort lautet für Danny dann wohl "Rekursive Funktion".

    @ Danny: Irgendwo habe ich noch eine Demodatenbank rumfliegen, wenn Du nicht weiterkommst, kann ich die mal rauskramen und Dir zur Verfügung stellen.
     
    Gustav Kurz, 5. Juli 2013
    #3
  4. Abfrage hierarchische Daten unbekannter Tiefe

    Danke für die Antworten *Smilie

    Da es für dieses Problem keine allgemeingültige Lösung gibt und man sich wahrscheinlich je nach UseCase einen Weg überlegen muss, möchte ich noch kurz meinen Weg andeuten, als "defacto"-Lösungsvorschlag...

    Da zum Zeitpunkt T die aktuelle Tiefe einer Struktur bekannt ist, und sich diese nur durch Änderung durch den User verändern kann, erstelle ich das SQL für die Abfrage "manuell" mit Schleifen in denen ich die Selects, Joins und in Access nötigen Klammern erzeuge und am Ende den SQL-String aus allen entstandenen Teilen zusammen setze.

    Hier das SQL für 4 Stufen:

    Code:
    Den grünen Bereich, die Selects, baue ich über eine Schleife der Stufenanzahl auf.
    Den orangenen Bereich ebenfalls, hier quasi nur umgedreht, da die Verknüpfung in der Tabelle [Struktur] von "unten" nach "oben" erfolgt (Parent).
    Zum Schluss noch den roten Bereich, da Access hier klammert und die Anzahl immer genau der Stufenanzahl (InnerJoins auf der Strukturtabelle) entspricht. Dies geschieht bereits mit in der ersten Schleife.
    Die Nummerierungen in den farbigen Bereichen erfolgt über den jeweiligen Schleifenindex!
    Die schwarzen Teile sind in meinem Fall immer gleich und können somit "hart" codiert werden.

    Dies speichere ich einfach als Abfrage und kann diese dann nach Excel exportieren bzw. aus Excel sogar sauber abrufen (z.B. in einer Pivot).
    Die Abfrage muss dann bei Änderung der Strukturtiefe durch den User, natürlich automatisch aktualisiert werden!

    Für die Anzeige in einem Formular, habe ich einfach ein dynamisches Formular (Datenblatt) angelegt und platziere zur Laufzeit einfach für die jeweilige Abfrage die Controls (Textfelder) auf dem leeren Form und verknüpfe Sie mit dem Recordset des Abfrageergebnisses.

    Code:
     
    BCoder, 17. Juli 2013
    #4
Thema:

Abfrage hierarchische Daten unbekannter Tiefe

Die Seite wird geladen...
  1. Abfrage hierarchische Daten unbekannter Tiefe - Similar Threads - Abfrage hierarchische Daten

  2. Abfrage: Anzahl von Kriterium >0

    in Microsoft Access Hilfe
    Abfrage: Anzahl von Kriterium >0: Hallo, [ATTACH] Ich versuche gerade, die Anzahl der belegten Plätze auf einem LKW per Abfrage zu ermitteln. Dabei wäre dann FSPal > 0. Leider zeigt er mir die Anzahl der Plätze an. [ATTACH]...
  3. Teil des Zellinhaltes abfragen in VBA

    in Microsoft Excel Hilfe
    Teil des Zellinhaltes abfragen in VBA: Guten Tag, ich möchte in Zelle E1 den linken 4-stelligen Teil in Zelle A3 abfragen. Habs versucht mit IF (LEFT(R[2]C[-3],4) = "8396") then ... Else ... End If Wer kann...
  4. Verliert irgendwann die Selektive Abfrage von UFO

    in Microsoft Access Hilfe
    Verliert irgendwann die Selektive Abfrage von UFO: Guten Tag Ich habe ein HF mit darin befindlichem UF. Die Abfrage der Teilnehmer im Uf bezieht sich immer auf den Kurs-Typ im HF Solang ich das Formular neu erstelle, funktioniert das...
  5. automatische Abfrage URL via Artikelnummer

    in Microsoft Access Hilfe
    automatische Abfrage URL via Artikelnummer: Guten Tag Bei der Aktualisierung der Homepage und aufgrund eines Plugin-Wechsels des Üebersetzungstools hat wordpress alle Permalinks der Produkte verändert. Unserem Webmaster war nicht bekannt,...
  6. Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern

    in Microsoft Access Hilfe
    Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern: Hallo Community, ich habe folgendes Problem beim Nutzen einer Access-Datenbank. Zunächst die Datenstruktur: [ATTACH] Dies sind die Tabellen meiner Datenbank. In der Tabelle "Adressliste"...
  7. mit String aus Formular Übereinstimmung in Abfrage prüfen

    in Microsoft Access Hilfe
    mit String aus Formular Übereinstimmung in Abfrage prüfen: Hallo liebe Mitglieder Ich verzweifle wieder einmal fast und wende mich an Euch. Ich möchte gern aus einem Formular heraus (Click) prüfen, ob übereinstimmende Datensätze in einer Abfrage vorhanden...
  8. RowSource aus Abfrage mit Kriterien

    in Microsoft Access Hilfe
    RowSource aus Abfrage mit Kriterien: Hallo, ich bin dabei eine Bundesliga-Datenbank zu erstellen, in der es auch eine Menge Statistiken geben soll. Ich will z.B. in einem Listenfeld die Namen der Schiedsrichter und deren Einsätze...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden