none
Tabelle rekursive durchlaufen bis eine Bedingung erfüht, oder das Ende der Tabelle erreicht ist.

    Frage

  • Hallo Zusammen,

    war immer in den Newsgroups, leider wurden die abgestellt, darum frage ich jetzt hier.

    Ich habe ein Problem mit einer Tabelle in Access und suche eine Lösung.

    Tabelle

    Spalte 0: ist eine Fortlaufende ID

    Spalte 1: PFEILNR 

    Spalte 2: Artikelnummer

    1000 > 5Z > Artikel 1

    1001 > 5Z > Artikel 2

    1002 > 5Z > Artikel 3

    1003 > 5 > Teil 1

    1004 > 6Z > Untergruppe 

    1005 > 6 > Teil in Untergruppe

    1006 > 5 Teil 2

    1007 > 4 (Kann aber auch ein 4Z sein)  > Neuer Artikel

    Es ist eine Art Stückliste und ich möchte folgendes Erreichen.

    Die Tabelle soll oben Anfangen durchzulaufen. Jetzt sind dort drei 5Z vorhanden, also muss ich drei Mal folgendes Resultat (nur mit der id 1000, 1001, 1002) bekommen.

    1000 --> 1003

    1000 --> 1004

    1000 --> 1004 --> 1005

    1000 --> 1006

    Anschließend kommt mit der Pfeilnummer eine kleiner Nummer wie die 5Z und jetzt würde das von ganze mit der Neuen Nummer weitergehen.

    Ich benötige eine maschinelle Lösung, da es ca. 250.000 Datensätze sind.

    Herzlichen Dank schon einmal im voraus.

    Dirk

    Freitag, 4. Februar 2011 05:30

Alle Antworten

  • Am 04.02.2011 schrieb Dirk.Freymann:

    war immer in den Newsgroups, leider wurden die abgestellt, darum frage ich jetzt hier.

    Die Newsgroups gibts immer noch. de.comp.datenbanken.ms-access
    Hier findest Du Newsserver, über die Du die o.g. NG kostenlos
    abonnieren kannst.
    http://schneegans.de/usenet/microsoft-umzug/#gnadenfrist

    Spalte 0: ist eine Fortlaufende ID

    Spalte 1: PFEILNR 

    Spalte 2: Artikelnummer

    1000 > 5Z > Artikel 1

    1001 > 5Z > Artikel 2

    1002 > 5Z > Artikel 3

    1003 > 5 > Teil 1

    1004 > 6Z > Untergruppe 

    1005 > 6 > Teil in Untergruppe

    1006 > 5 Teil 2

    1007 > 4 (Kann aber auch ein 4Z sein)  > Neuer Artikel

    Es ist eine Art Stückliste und ich möchte folgendes Erreichen.

    Die Tabelle soll oben Anfangen durchzulaufen. Jetzt sind dort drei 5Z vorhanden, also muss ich drei Mal folgendes Resultat (nur mit der id 1000, 1001, 1002) bekommen.

    1000 --> 1003

    1000 --> 1004

    1000 --> 1004 --> 1005

    1000 --> 1006

    Ich würde das mit einer Abfrage lösen. Alle 3 Felder in den
    Abfrageeditor ziehen, im Kriterienfeld für die PFEILNR die 5Z
    eintragen und auf das rote Ausführungszeichen oben klicken. Alternativ
    die 5Z weglassen und die Abfrage als Datengrundlage für ein Formular
    verwenden. Dort kannst Du dann immer wieder neu filtern.

    Vermutlich hab ich dich aber nicht richtig verstanden.

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Freitag, 4. Februar 2011 10:07
  • Hallo Winfried,

    leider funtioniert Dein Vorschlag nicht.

    Vielleicht habe ich mir aber auch nicht richtig Ausgedrückt.

    Das Resultat möchte ich wie Beschrieben dann in eine andere Tabelle einfügen, das kann ich dann in VBA über SQL ausführen.

    Ergebnis sollte dann so aussehen, in nur einer Spalte (das würde ich in einer anderen Tabelle über SQL (Insert Into) einfügen

    1000 --> 1003
    1000 --> 1004
    1000 --> 1004 --> 1005
    1000 --> 1006
    1001 --> 1003
    1001 --> 1004
    1001 --> 1004 --> 1005
    1001 --> 1006
    1002 --> 1003
    1002 --> 1004
    1002 --> 1004 --> 1005
    1002 --> 1006
    1007 --> hier soll wieder weiter gesucht werden bis ein 3 oder 3Z auftaucht und der Baum soll wieder dargestellt werden. Das ganze wiederholt sich bis zum letzten Datensatz.

    Auch beginne ich nicht immer mit 5Z, es kann auch einmal ein 3Z oder Ganz oben mit 1Z sein. Dann kann die Staffelung Natürlich auch tiefer ausfallen.
    z.B.
    1 --> 25 --> 562 --> 584 --> 5412 --> 5443 --> 5447
    1 --> 25 --> 562 --> 584 --> 5412 --> 5443 --> 5448
    1 --> 25 --> 562 --> 584 --> 5412 --> 5443 --> 5448 --> 55554
    1 --> 25 --> 562 --> 584 --> 5412 --> 5443 --> 5448 --> 55555

    Wie bereits erwäht sind es bis zu 250.000 Zeilen die ich verarbeiten muss.

    mfg.
    Dirk


    Dirk
    Freitag, 4. Februar 2011 10:36