Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Accessiv am November 11, 2012, 20:08:13

Titel: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Accessiv am November 11, 2012, 20:08:13
Hallo,

kann mir einer von Euch erklären, wie man mit Access 2010 die u. a. Baumstruktur mit einer oder mehreren Tabellen realisiert?

Ordner1
     - Unterordner1.1
              - Unterordner1.1.1
              - Unterordner1.1.2
              - Unterordner1.1.3
      - Unterordner1.2
              - Unterordner1.2.1
              - Unterordner1.2.2
Ordner2
      - Unterordner2.1
               - Unterordner2.1.1

usw.

Gruß Helmut
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: database am November 11, 2012, 22:05:22
Hallo,

'früher' hat man das mit einem TreeView-Control erledigt.  ;D
K.A. ob es das für Acc2010 noch gibt.  :-\

Sieh mal da rein:  http://dbwiki.net/wiki/Access_Beispieldatenbanken (http://dbwiki.net/wiki/Access_Beispieldatenbanken) unter TreeView ...

HTH
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Accessiv am November 12, 2012, 19:38:17
Hallo Peter,
vielen Dank für den Hinweis. Sieht so aus als würde man mit dem von Dir vorgeschlagenen TreeView-Control eine Baumstruktur hinbekommt. Mein Problem ist nur, dass ich den Code in dem Modul "TreeView" nicht verstehe. Da meine VBA-Kenntnisse nur sehr rudimentär sind, hoffe ich auf einen Lösungsvorschlag ohne VBA. Mittlerweile habe ich schon herausgefunden, dass es irgendwie mit Tabellen funktionieren soll, die einen Verweis auf sich selbst enthalten. Das "irgenswie" habe ich aber noch nicht entschlüsselt.
Gruß Helmut
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Beaker s.a. am November 12, 2012, 23:06:23
Hallo Helmut,
Anbei DB mit Tabelle und Abfrage zur Verdeut-
lichung des prinzipiellen Vorgehens.
Das TreeView-Beispiel von Peter habe ich mir
auch angeschaut, komme damit aber in soweit
nicht klar, das ich nicht verstehe, wie die
Importdatei aufgebaut sein muss, die man da
zum Testen braucht (sind ja keine Beispieldaten
drin).
Ich selber habe das Control vor vielen Jahren
mal verwendet, dann nicht mehr, und so ist der
Code verloren gegangen. War erst nicht so ein-
fach, hatte es dann aber hinbekommen. Jetzt
müsste ich mich damit auch erst wieder intensiv
beschäftigen. Leider fehlt mir da etwas die Zeit.
Ohne VBA wird es aber wohl nicht gehen.
Vielleicht kann einer von den Regulars hier den
einen oder anderen Codeschnipsel aus der Kiste
zaubern, oder sogar ein einfacheres Beispiel,
dann bekommen wir das gemeinsam schon zu-
sammen.
Vielleicht googlest Du auch selber nochmal nach
VBA+TreeView.
gruss ekkehard

[Anhang gelöscht durch Administrator]
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am November 12, 2012, 23:19:31
Hallo Helmit,

eine Baumstruktur kann man in Formularen tatsächlich nur über das Treeview-Control anzeigen. Dieses Control erfordert allerdings einiges an Einarbeitungszeit. Ohne gute Programmierkenntnisse (und auch einem Grundverständnis von Rekursion) kann man nicht diesem Control nicht effizient arbeiten.

Man kann Hierarchien natürlich in Tabellen speichern, das wird millionenfach gemacht. Aber die Herarchie da rauszulesen und damit zu rechnen, erfordert wieder Programmierung (Google-Stichwort "Baumtraversierung").

Ich will Dir ein Beispiel hier kurz kopieren, wie man beliebige Hierarchien mit 2 Tabellen modellieren kann. Bei echtem Interesse kann ich das genauer darstellen und auch beim Treeview helfen.

Tabelle mit den Knoten des Baumes
CREATE TABLE tblSETHEADER
(SETName VARCHAR2(10) NOT NULL,
SETBez VARCHAR2(25) NOT NULL,
CONSTRAINT tblSETHEADER_Primary_Key Primary Key(SETNAME));

Tabelle, wo die Beziehung modelliert wird
CREATE TABLE tblSETLEAF
(SETNAME VARCHAR2(10) NOT NULL,
SUBITEM VARCHAR2(10) NOT NULL,
RhFlg NUMBER(5) NOT NULL,
CONSTRAINT tblSETLEAF_Primary_Key Primary Key(SETNAME, SUBITEM),
CONSTRAINT tblSETLEAF_SETH_fk FOREIGN KEY(SETNAME) REFERENCES tblSETHEADER(SETNAME),
CONSTRAINT tblSETLEAF_ITEM_UNIQUE UNIQUE(SUBITEM));

Beispieleinträge:

tblSETHEADER
0, "Wurzel"
O1, "Ordner1"
UO1, "Unterordner1.1"
UO11, "Unterordner1.1.1"
UO12, "Unterordner1.1.2"
UO13, "Unterordner1.1.3"

tblSETLEAF
0, O1, 1
0, O2, 2
O1, UO1, 1
UO1, UO11, 1
UO1, UO12, 2
UO1, UO13, 3



Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Beaker s.a. am November 12, 2012, 23:56:40
Hallo Wurliwurm,
Danke, das Du helfen willst.
Ich glaube allerdings, dass der TS damit deutlich
überfordert ist; muss ja selber jetzt erstmal ein
paar Fragen stellen, um es zu verstehen.
Zitatwie man beliebige Hierarchien mit 2 Tabellen modellieren kann
Dein Beispiel zeigt aber nur drei Stufen - richtig?
Für weitere Stufen müsste man die tblSETLeaf
um weitere SUBITEMs erweitern?
Und wie funzt das zur Laufzeit, wenn man eine
weitere Stufe hinzufügen will?
Dank im Voraus für weitere Erläuterungen.
gruss ekkehard
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am November 13, 2012, 00:14:16
Hallo Ekkehard,

schon möglich, daß der TS da überfordert ist. Schade, weil dann würde das wenig ergiebig.

Mein Beispiel kann beliebig tiefe Bäume modellieren. Die Tabellenstruktur habe ich in einem eigenen Projekt im Einsatz, dabei sind noch ein paar Felder mehr in den Tabellen. Mit diesen zusätzlichen Feldern (Hierarchietyp, Hierarchienummer) kan man mit Hilfe der 2 Tabellen beliebig viele Hierarchien parallel modellieren (mehrere Kostenstellenhierarchien, Materialhierarchien, Kundenhierarchien etc.., alles in den gleichen 2 Tabellen). Tatsächlich habe ich die Tabellen SETHEADER und SETLEAF aus dem SAP abgekupfert und dort werden in diesen beiden Tabellen praktisch alle Hierarchien gespeichert (dort haben sie aber viel viel mehr Spalten und es ist alles natürlich viel viel komplexer)

Aber Dein Beispiel ist natürlich auch absolut ausreichend. Mein Beispiel unterscheidet sich halt durch die Trennung der Hierarchie an sich von den Stammdaten.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Accessiv am November 13, 2012, 14:06:58
Hallo Ekkehard, hallo Wurliwurm,

erst mal herzlichen Dank für Eure Hilfe bis hierher. So langsam lichtet sich bei mir auch etwas der Nebel, obwohl noch nicht alles ganz klar ist. Vielleicht habt ihr aber Lust mir weiterhin bei der Lösung meines eigentlichen Problems zu helfen. Das habe ich in dem Post "Brauche Hilfe beim Design einer Seminar-DB" beschrieben. Mittlerweile ist mir klar, dass ich zur Lösung des dort beschriebenen Problems eben eine Baumstruktur brauche und versuche mich nun Schrittchen für Schrittchen einer brauchbaren Lösung zu nähern. Während ihr Euch über mein Problem den Kopf zerbrochen habt, war ich aber auch nicht untätig und habe versucht das Seminarplanungs-Problem in einem anderen Datenbankmodell zu beschreiben (siehe Anlage). In dem Modell werden die Richtlernziele als RLZ (werden auf Seminarebene definiert), die Groblernziele als GLZ (werden auf Ebene der Unterrichtseinheiten definiert) und die Feinlernziele als FLZ (werden auf Ebene der Unterrichtsphasen definiert) abgekürzt. Diese Lernziele stellen im Prinzip die Baumstruktur da, ein RLZ hat mehrere GLZ und jedes GLZ wiederum mehrere FLZ.
Würde mich sehr freuen, wenn ihr mir weiterhin zur Seite stehen wüdet. Als erstes müssten wir wohl klären, in welchen Bereichen mein neues Datenbankmodell nachgebessert werden müsste. Vielleicht habt ihr dazu einen Vorschlag. Wenn das Datenbankmodell mit Eurer Hilfe dann einmal steht, könnten wir uns der Realisierung in einer Baumstruktur nähern.

Wie gesagt, erst einmal vielen Dank bis hierher! :D

[Anhang gelöscht durch Administrator]
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Beaker s.a. am November 13, 2012, 22:29:59
Hallo Helmut,
Sorry, aber da muss ich erst mal die Segel streichen  :(
Ich brauche einfach zu lange um mich da rein zu
fuchsen, dazu bin ich nicht versiert/geübt genug.
Ich hoffe jedoch, dass vielleicht einer der Profis,
denen das leichter fällt, in die Bresche springt.
Werde den Thread aber auf jeden Fall weiter mitlesen.
gruss ekkehard
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am November 13, 2012, 22:30:21
Hallo Helmut,

erstmal will ich Anerkennung für das PDF aussprechen. Ist ein Modell einmal gut aufgezeichnet, ergeben sich die Tabellen und Schlüssel oft von selbst.

Die Lösung, die ich weiter oben vorgeschlagen habe, ist sehr flexibel, wenn man es nur leicht erweitert, könnte man zum Beispiel das gleiche Lernziel in mehreren verschiedenen "Lernzielbäumen" haben und könnte auch Teilbäume einfach "umhängen" und ähnliches. Der Nachteil ist, daß diese Baumtabelle sinnvoll nur mit (rekursiven) Programmierschleifen auslesbar wäre und auch Gültigkeitsprüfungen wie referenzielle Integrität kaum mehr anwendbar wären. Wahrscheinlich ist das nicht praktikabel und ohne viel VBA kann man das vergessen.

Eine alternative Modellierung wäre es, die Lernziele in 3 unterschiedlichen Tabellen zu führen und bei der Tabelle Feinlernziele einen Fremdschlüssel mit NOT NULL auf die Tabelle GLZ zu machen; gleiches für die Beziehung GLZ->RLZ. Von den Tabelle Kurse, Unterrichtseinheite und Unterrichtsphasen würde man dan Fremdschlüssel auf die jeweilige Lernzieltabelle machen.

Vorteil: Damit wäre in der Datenbank diese dreistufige Hierarchie fest verankert und es wäre sichergestellt, daß kein FLZ oder GLZ "hängt", sprich unzugeordnet ist.
Nachteil: Ein Lernziel kann immer nur genau ein "Mutter"-Lernziel haben.

Mit dieser Lösung könnte man zum Beispiel eine Baumansicht (Treeview) für ein RLZ machen:

Selektiere den Eintrag aus Tabelle RLZ wo Lernziel-ID = 4711
Erzeuge einen Knoten im Baum mit Key=4711
    Schleife über alle GLZ, welche RLZ=4711 zugeordnet haben
        Erzeuge Knoten mit Key=RLZ.ID hat und Parent-Key = 4711
            Schleife über alle FLZ, welche GLZ=GLZ.ID zugeordnet haben
                Erzeuge Knoten mit Key=FLZ.ID hat und Parent-Key =GLZ.ID

Die praktische Programmierung ist eigentlich gar nicht so schwer. Nachdem ein Treeview jetzt ungefähr 15-mal gemacht habe, und dabei selbst Hilfe aus dem Netz benutzt habe, würde ich Dir da gerne helfen.

Was mir an dem Datenmodell auffällt: In der Entität "Lernziele" kommt zum Beispiel das Attribut Kurs vor. Jetzt ist hat aber ein Kurs ein RLZ.
Wenn jetzt Kurs 4711 das RLZ 0815 hat, steht dann auch der Kurs 4711 im Lernziel drin oder ein anderer? Am besten, man modelliert ein Datenbank so, daß Widersprüche nicht auftreten können.

Oder folgendes Problem habe ich:
Wenn man einen Kurs belegt, enthält dieser Unterrichtseinheiten, welche wiederum aus Unterrichtsphasen bestehen.
Jede Unterrichtsphase hat ein FLZ. Das heißt, wenn man einen Kurs nimmt, hat man eine Menge von FLZ. Wie willst Du sicherstelen, daß alle diese FLZ dem gleichen GLZ des Kurses zugeordnet sind?

Beispiel
Kurs 4711 hat GLZ "Tanzen"
 GLZ Tango
    Grundschritte Tango hat FLZ 0815
   ...
 Walzer
   ...
 Salsa
  ...

Wie willst Du sicherstellen, daß die Hierarchie der Lernziele identisch mit der Unterrichtshierarchie ist?

Fragen über Fragen. Was Du modellieren willst, ist nicht trivial und erfordert eine Menge Fachwissen und Übung. Insgesamt ist dieser Teil der schwerste Teil bei einem DB-Entwirf, weil man hier viele Fehler machen kann, welche einem später immer verfolgen.








Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Beaker s.a. am November 13, 2012, 22:38:13
Hallo,
ZitatDatum/Zeit: Heute um 22:29:59
Ich hoffe jedoch, dass vielleicht einer der Profis,
denen das leichter fällt, in die Bresche springt.
ZitatAutor: Wurliwurm, Datum/Zeit: Heute um 22:30:21
Das nenne ich immer "Duplizität der Ereignisse"  ;D
Danke.
Ich hoffe, dass ich mit lernen darf  ;)
gruss ekkehard
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Accessiv am November 14, 2012, 11:10:29
Hallo Wurliwurm,

Zitat von: Wurliwurm am November 13, 2012, 22:30:21
Eine alternative Modellierung wäre es, die Lernziele in 3 unterschiedlichen Tabellen zu führen und bei der Tabelle Feinlernziele einen Fremdschlüssel mit NOT NULL auf die Tabelle GLZ zu machen; gleiches für die Beziehung GLZ->RLZ. Von den Tabelle Kurse, Unterrichtseinheite und Unterrichtsphasen würde man dan Fremdschlüssel auf die jeweilige Lernzieltabelle machen.

Vorteil: Damit wäre in der Datenbank diese dreistufige Hierarchie fest verankert und es wäre sichergestellt, daß kein FLZ oder GLZ "hängt", sprich unzugeordnet ist.
Nachteil: Ein Lernziel kann immer nur genau ein "Mutter"-Lernziel haben.

den Ansatz halte ich für eine gute Idee. In der Tat habe ich bei meinem Modell das Problem, die Lernziele eindeutig der Unterrichtshirarchie zuzuordnen. Oder anders gesagt hier komme ich einfach nicht weiter! ??? Nur eine Tabelle "Lernziele" zu verwenden trägt der Tatsache Rechnung, dass Lernziele immer gleich strukturiert sind, egal ob es RLZ, GLZ oder FLZ sind. Sie werden eben nur jeweils für eine andere Unterrichtshirarchieebene definiert:
RLZ für den Kurs, GLZ für die Unterrichtseinheit und FLZ für die Unterrichtsphase. Um bei Deinem u. a. Beispiel zu bleiben sähe das so aus:

Der Kurs1 "Lateinamerikanische Tänze lernen" hat das RLZ: "Der Kursteilnehmer (TN) beherrscht die Grundschritte des Tango und des Salsa" und umfasst insges. zwei Unterrichtseinehiten (UE).
     Das GLZ1 für UE1 im Kurs1 lautet: "Der TN kann die Grundschritte des Tango".
            Das FLZ1 für Unterrichtsphase 1 der 1. UE im Kurs1 lautet: "Der TN kann erkennen, zu welcher Musik ein Tango getanzt wird".
            Das FLZ2 für Unterrichtsphase 2 der 1. UE im Kurs1 lautet: "Der TN kann die Tangoschritte des Tanzlehrers nachahmen".
            Das FLZ3 für Unterrichtsphase 3 der 1. UE im Kurs1 lautet: "Der TN kann selbstständig die ersten Tangoschritte nach Musik tanzen".
     Das GLZ2 für UE2 im Kurs2 lautet: "Der TN kann die Grundschritte des Salsa".
            Das FLZ1 für Unterrichtsphase 1 der 2. UE im Kurs1 lautet: "Der TN kann erkennen, zu welcher Musik eine Salsa getanzt wird".
            Das FLZ2 für Unterrichtsphase 2 der 2. UE im Kurs1 lautet: "Der TN kann die Salsaschritte des Tanzlehrers nachahmen".
            Das FLZ3 für Unterrichtsphase 3 der 2. UE im Kurs1 lautet: "Der TN kann selbstständig die ersten Salsaschritte nach Musik tanzen".
Der Kurs2 "Standardtänze lernen" hat das RLZ: "Der TN beherrscht die Grundschritte des Walzers und Foxtrots".
     Kurs2 ist im Folgenden genau so strukturiert wie Kurs1.

Das ist mit Deinem Vorschlag eventuell einfacher zu realisieren als mit meinem Modell. Wie könnte man Deinen Treeview

Zitat von: Wurliwurm am November 13, 2012, 22:30:21
Selektiere den Eintrag aus Tabelle RLZ wo Lernziel-ID = 4711
Erzeuge einen Knoten im Baum mit Key=4711
     Schleife über alle GLZ, welche RLZ=4711 zugeordnet haben
         Erzeuge Knoten mit Key=RLZ.ID hat und Parent-Key = 4711
             Schleife über alle FLZ, welche GLZ=GLZ.ID zugeordnet haben
                 Erzeuge Knoten mit Key=FLZ.ID hat und Parent-Key =GLZ.ID

denn modellieren? Hast Du einen Vorschlag?

Zitat von: Wurliwurm am November 13, 2012, 22:30:21
Was mir an dem Datenmodell auffällt: In der Entität "Lernziele" kommt zum Beispiel das Attribut Kurs vor. Jetzt ist hat aber ein Kurs ein RLZ.
Wenn jetzt Kurs 4711 das RLZ 0815 hat, steht dann auch der Kurs 4711 im Lernziel drin oder ein anderer?

Die Attribute Typ, Bereich, Kurs, Unterrichtseinheit und Unterrichtsphase hatte ich vorgesehen, um jeweils eine Referenz auf die entsprechende Tabelle speichern zu können. Deshalb habe ich diese Attribute als Fremdschlüssel (FK) gekennzeichnet. Aber wie gesagt, der ganze Ansatz ist vielleicht falsch.

Gruß Helmut

@Ekkehard
Natürlich würde ich mich freuen, wenn Du passiv oder aktiv mit dabei bleiben würdest.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Accessiv am November 14, 2012, 19:06:35
Hallo Wurliwurm,

ich habe mal versucht ein neues DB-Modell mit einzelnen Tabellen für RLZ, GLZ und FLZ zu erstellen (siehe Anlage). Es ist allerdings keine rekursive Tabellenstruktur mehr enthalten. Was hältst Du davon? Glaubst Du damit kann man weiterarbeiten?

Gruß Helmut

[Anhang gelöscht durch Administrator]
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am November 14, 2012, 20:42:31
Hallo Helmut,

ich bin diese Woche mit Erkältung zuhause und habe bei der Gelegenheit mal ein Demoprogramm zum Treeview aufbereitet. Und zwar mit der speziellen Hierarchietabelle. Nur so als Anschauungmaterial, wie beliebige Hierarchien modelliert werden können.

Probier mal, ob Du es zum Laufen bringst (dazu muß das Treeview aus dem SYSTEM32-Ordner im Windows eingebunden sein) und spiel mal damit rum. Ich führ mir mal dein Beispiel zu Gemüte.

Grüße
Johannes

[Anhang gelöscht durch Administrator]
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Accessiv am November 15, 2012, 10:23:54
Hallo Wurliwurm,

erst einmal gute Besserung für Deine Erkältung!

Habe mir Dein Demoprogramm mal angeschaut (den James Bond Kurs finde ich übrigens klasse) brauche aber noch ein bisschen Zeit um zu verstehen, wie die Tabellen aufgebaut sind und vor allem was der Modul-Code alles so macht.

Außerdem habe ich versucht das Treeview einzubinden, habe im Win-System32-Ordner aber nur eine tree.com gefunden. Meinst Du die? Ich weiß auch nicht wo und wie ich diese Treeview irgendwo einbinden kann. Kannst Du mir dazu ein paar Hilfestellungen geben?

Gruß Helmut

PS: In dem Modell, das ich gestern gepostet habe ich übrigens noch die 1:n-Verbindungen von tblRLZ - tblGLZ und von tblGLZ - tblFLZ vergessen. Damit Dein Vorschlag vom 13.11.2012 richtig umgesetzt wird müssen die natürlich noch rein.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am November 15, 2012, 10:42:53
Hallo Helmut,

wenn Du das Formular ohne Fehlermeldung aurufen konntest, dann war das Treeview schon erfolgreich eingebunden und es ist kein Handlungsbedarf. (Dieses ist nämlich ein Active-X-Steuerelement (MSCOMCTL.OCX), welches man erst verwenden kann, wenn man einen Verweis gesetzt hat)

Mit der völlig freien Hierarchie-Struktur aus dem Beispiel wärst Du am flexibelsten. Die FLZ wären dabei die atomaren Bausteine, welche in beliebig vielen Hierarchien vorkommen könnten. Es wäre also möglich, die einzelnen FLZ zu immer neuen Kursen zu kombinieren. (Auf diese Weise speichert man z.B. auch Stücklisten, man hat zum Beispiel einen Motor und kann diesen in die Einzelteile auflösen bis zur einzelnen Schraube).

Die feste Struktur mit tblRLZ -> tblGLZ und tblGLZ -> tblFLZ wäre da viel weniger flexibel. Ich schreibe im Laufe des Tages zu dem aktuellen Beispiel von Dir.

Grüße
Johannes
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am November 16, 2012, 13:42:00
Hallo Helmut,

vielen Dank für die Besserungswünsche!

Leider scheint hier keiner mehr helfen zu wollen, also mal mein Meinung dazu:

Die Doppelstruktur Lernziele/Unterricht ist nicht praktikabel. Damit sind widersprüchliche Daten schon vorprogrammiert. Zum Beispiel kann eine Unterrichtsphase einem Kurs zugeordnet sein, aber einem inhaltlich ganz anderen Lernzielbereich

Verbesserungsvorschlag:
Unterrichtsphasen und FLZ sind identisch. Das bedeutet, in der Tabelle Unterrichtsphasen ist das Feinlernziel ein (Nichtschlüssel)-Attribut.
Die Tabelle Unterrichtseinheiten beinhaltet eine oder mehrere Unterrichtsphasen (1:n). Dabei sollen alle Werte, die aus den Phasen errechenbar sind, nicht in Unterrichtseinheiten gespeichert werden (zum Beispiel die Dauer der Stunden, drei Phasen à drei Stunden ergeben 9 Stunden, diese 9 Stunden sollen in der Tabelle Einheiten nicht nochmals gespeichert werden).

Das GLZ ist ein Nichtschlüsselattribut der Unterrichtseinheit und das RLZ ein Nichtschlüsselattribut der Kurse.

Mit dieser einfachen dreistufigen Struktur sind jederzeit zum jedem Kurs/RLZ die Unterrichtseinheiten/GLZ und Phasen/FLZ darstellbar. Man kommt völlig ohne rekursive Programmierung aus und kann alles mit Abfragen auswerten und darstellen.

Die Tabelle Lernzielbereich verstehe ich überhaupt nicht. Insbesondere kann ich keine hierarchische Struktur erkennen. In dieser Tabelle könnte der Eintrag Töpferkurs / Grundschritte des Tango / Schacheröffnungen gespeichert werden.

Grüße
Johannes




Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Accessiv am November 16, 2012, 19:11:50
Hallo Johannes,

vielen Dank für Deine Ausdauer, ich hoffe es geht dir gesundheitlich wieder besser und Du hältst noch ein Weilchen mit mir durch.

Nun zu Deinen Anmerkungen:

Zitat
Unterrichtsphasen und FLZ sind identisch. Das bedeutet, in der Tabelle Unterrichtsphasen ist das Feinlernziel ein (Nichtschlüssel)-Attribut.
Die Tabelle Unterrichtseinheiten beinhaltet eine oder mehrere Unterrichtsphasen (1:n). Dabei sollen alle Werte, die aus den Phasen errechenbar sind, nicht in Unterrichtseinheiten gespeichert werden (zum Beispiel die Dauer der Stunden, drei Phasen à drei Stunden ergeben 9 Stunden, diese 9 Stunden sollen in der Tabelle Einheiten nicht nochmals gespeichert werden).

Ich muss dazu glaube ich an einem konkreten Bsp. noch etwas erklären. Unterrichtsphasen und FLZ sind nicht identisch, in den Unterrichtsphasen - die Teile einer Unterrichtseinheit sind - werden FLZ definiert.

Hier ist ein Beispiel für eine erste Unterrichtsstunde (Unterrichtseinheit) in einem Sprachlehrgang:

1. Unterrichtseinheit (UE):
Groblernziele der 1. UE:
     - Wissen/Können: Teilnehmer (TN) können sich vorstellen und sagen woher sie kommen.
     - Gruppendynamik: TN kennen die anderen TN und deren Erwartungen und Ziele.
     - Lernpsychology: TN können ihre eigenen Ziele für den Kurs benennen und kennen das methodische Konzept des Kurses.
     - Organisation: TN kennen den organisatorischen Rahmen des Kurses.
     
"Wissen/Können, Gruppendynamik, Lernpsychologie und Organisation" sind dabei jeweils der Lernzielbereich des nach dem Doppelpunkt beschriebenen Lernziels.


1. Unterrichtsphase der 1. UE:
1. fremdsprachliche Phase: Einstieg, Präsentation, Kognitivierung

"Einstieg, Präsentation, Kognitivierung" sind dabei die in der Tabelle tblLehrLernPhasen gespeicherten sog. Lehr-/Lernphasen, es können also mehrere dieser Lehr-/Lernphasen einer Unterrichtsphase zugeordnet werden.


     Feinlernziele der 1. Unterrichtsphase in der 1. UE:
     - Wissen/Können: Kursteilnehmer (TN) kennen Redewendungen zum Vorstellen und Begrüßen.
     - Lernpsychologie: TN wissen, dass Unterricht handlungsorientiert und in Fremdsprache stattfindet.
     - Gruppendynamik: TN kennen die Namen der anderen TN und des Kursleiters.
     
2. Unterrichtsphase der 1. UE:
2. fremsprachige Phase: Präsentation, Kognitivierung, Übung

     Feinlernziele der 2. Unterrichtsphase in der 1. UE:
     - Wissen/Können: TN können sagen woher sie kommen und nach dem Wohnort fragen.
     - u.s.w.

Die zweite und alle folgenden (UEs) sind ähnlich aufgebaut wie die erste. Analog würde man hier dann ein oder zwei RLZ für den gesamten Kurs definieren.

Du hast Recht, dass man zur Vereinfachung auf die doppelte Verknüpfung der Lernziele mit dem jeweisl übergeordneten Lernziel einerseits und der Zugehörigkeit zu einem zeitlichen "Kursabschnitt" (UE oder Unterrichtsphase) andererseits verzichten kann. Die FLZ leiten sich zwar aus einem GLZ ab und die GLZ wiederum aus den RLZ, sie sind aber auch - und das ist vielleicht der wichtigere Aspekt - eindeutig einer entsprechenden Hierarchieebene des Kurses (Kurs, UE, Unterrichtsphase) zugeordnet.

Ich habe mein Modell noch einmal angepasst, um dieser einfacheren Struktur Rechnung zu tragen (s. Anhang).

Zitat
Die Tabelle Lernzielbereich verstehe ich überhaupt nicht. Insbesondere kann ich keine hierarchische Struktur erkennen. In dieser Tabelle könnte der Eintrag Töpferkurs / Grundschritte des Tango / Schacheröffnungen gespeichert werden.

Wie Du aus o. a. Bsp. siehst werden Lernziele bestimmten Kategorien (Lernzielbereichen) zugeordnet, von denen es insgesamt acht Stück gibt. Für FLZ ist diese Zuordnung in jedem Fall sinnvoll, für GLZ kann man drüber diskutieren und für RLZ erfolgt die Zuordnung nur selten. Um Redundanzen zu vermeiden, habe ich diese Lernzielbereiche in eine eigene Tabelle ausgelagert.

Wenn Du der Meinung bist, dass das Modell im Anhang so OK ist, werde ich es mal in Access-Tabellen umsetzen. Verbesserungsvorschläge/Fehlerhinweise sind nach wie vor äußerst willkommen.

Grüße Helmut

Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Accessiv am November 16, 2012, 19:14:39
Sorry hatte bei meinem vorherigen Post den Anhang vergessen. Hier ist er nun dran.

Gruß Helmut

[Anhang gelöscht durch Administrator]
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: VolkerB am November 17, 2012, 00:48:58
Hallo zusammen,

ich benutze diesen hier: http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=771 TreeView Konfigurator.

Dieser funktioniert bei mir mit Access 2007  einwandfrei.

Evtl. müsst Ihr Euch einen Testzugang geben lassen, damit Ihr den gesamten Beitrag lesen könnt. Schaut auch mal im Online-Archiv nach anderen Beiträgen über das TreeView nach.

Gute Nacht zusammen.

Volker
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Accessiv am November 18, 2012, 12:21:49
Hallo Volker,

vielen Dank für Dein Interesse und Deinen Hinweis. Den Treeview-Konfigurator werde ich bei Gelegenheit mal ausprobieren. Für mein aktuelles Problem habe ich mich aber jetzt entschlossen eine einfachere Struktur zu relalisieren.

Gruß Helmut
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: dirne am August 29, 2015, 20:00:08
Hallo,
ich würde dieses Thema gern nochmal beleben, da ich vor dem Problem stehe eine Stückliste mit Baugruppen und unterbaugruppen und unter unterbaugruppen ... herzustellen.
Dazu würde mich die Methode mit 2Tabellen interressieren.

Lg
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am August 31, 2015, 11:54:53
Zitat von: dirne am August 29, 2015, 20:00:08
Dazu würde mich die Methode mit 2Tabellen interressieren.

Ich habe mir den Thread nochmal durchglesen. Eigentlich steht schon alles drin.

Es gab mal ein Beispiel von mir, daß ich als Demo mit den 2 Tabellen zum Füllen eines Baum-Steuerelements gepostet habe. Es war mit rekursiver Programmierung. Leider ist das Beispiel gelöscht und ich finde es auch nicht mehr auf meinem Arbeitsplatzrechner. Evtl. habe ich zuhause noch eine Kopie.

Ohne ein Grundverständnis von Rekursion und dem Unterschied von Parameterübergabe per Wert/Referenz ist das sowieso schwer zu verstehen. Es ist schon fortgeschrittene Programmierung. Ohne Programmierung geht es aber nicht.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: dirne am August 31, 2015, 21:54:16
Hallo,
ZitatEs gab mal ein Beispiel von mir...
Wenn du so ein Bsp. noch finden würdest wäre nicht Schlecht  :o
Mein Vorhaben ist es , eine Materialstückliste anzulegen die zt. mehrstufig sein kann.
zb. BG-O1
     UG-O1.1
     UG-O1.1.1
     UG-O1.1.1.1
     ......

Wenn ich deinen Beitrag richtig verstehe kann man das mit 2Tbl erledigen ???

Lg
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am September 01, 2015, 12:35:50
Mit 2 Tabellen kann man das so machen, daß man beliebig viele Hierarchien (~Stücklisten) für die gleichen Stämmsätze modelliert, und außerdem auch noch die Sortierung festlegt. Bei einer Stückliste braucht es allerdings noch ein Feld für die Menge.

Leider habe ich das Beispiel auch nicht mehr auf meinem Computer zuhause gefunden. Wenn ernsthaftes Interesse besteht, will ich das gerne nochmal aufsetzen und als mdb zur Verfügung stellen. Bin allerdings ein paar Tage auf Dienstreise, also vielleicht am Wochenende.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: dirne am September 01, 2015, 19:04:28
Hallo,
ich danke dir schonmal für deine Mühe.
Und warte gern bis zum WE. ::)
Lg
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am September 03, 2015, 15:22:45
Ich hab das was gebaut. Schau, ob Du es zu Laufen bekommst. Erläuterungen später gerne.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Thor75 am September 05, 2015, 00:36:00
Halli Hallo Liebe Leutz,

bin neu hier, ut Hamburch und auf dieses Thema gestoßen.
Ich war auf der Suche nach Ideen für ein kleines Tool welches ich grad am basteln bin.
Etwas ähnliches hatte ich schon mal gebaut, doch dort hatte ich lediglich zwei oder drei
Ebenen zu bestücken. Das hatte ich mit Tabellen und Abfragen gelöst.
War eine ganz schöne Fummelei. Lief/läuft aber gut. :)
Nun war ich auf der Suche nach etwas neuem mit der Möglichkeit quasi unbegrenzt in die Tiefe zu gehen. An dieser Stelle vielen Dank an Wurliwurm für die Beispiel DB.
Ich versuch mich da gerade rein zu fummeln und hab da ein zwei Fragen.
Zunächst einmal bin ich noch nicht ganz hinter die Logik gekommen wie die tblSETLEAF gefüllt wird. Was tun wenn ich mal zwei oder mal drei Ebenen in die Tiefe gehe. Aber das hat wohl mit meiner Ersten Frage zu tun. Dann würde ich noch gerne den gerade angeklickten Knoten per Knopfdruck auslesen und zusammen mit einem Zeitstempel in eine Tabelle schreiben.
Hintergrund ist folgender. Ich bastel gerade an einem Tool mit dem man Prozesszeiten messen kann. Dazu brauch ich verschiedene Kategorien und Unterkategorien. Der Anwender soll auf einen Knopf drücken und es soll eine Stoppuhr für den gerade gewählten Knoten starten. Soweit im groben. Freue mich auf eine angeregte Diskussion, Fragen und Erklärungen.

Als Ergänzung noch dazu. Ein Bild wie ich es mir dann vorgestellt habe (Ist ein altes Projekt von mir). Der Baum wird komplett dargestellt. Also wie man es im Explorer gewohnt ist. Alle Knoten sind beim laden eingeklappt.
Ein echtes Highlight wäre es wenn man per Rechtsklick einen Knoten hinzufügen und man die Breite des Baumes verändern könnte. Je nachdem wieviel Platz man braucht.

Viele Grüße aus Hamburg
Armin
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: dirne am September 06, 2015, 13:34:01
Hallo Wurliwurm,
wollte es testen, bekomme leider die meldung "in diesen Steuerelement befindet sich kein objekt"  ::) ???
Der code bleibt mit Fehler'2683 in dieser Zeile stehen
Set BaumM = HBaum.Object
Hast du da eine Tip für mich  :-\

Lg
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Thor75 am September 07, 2015, 21:56:09
Moin dirne,

bei mir läufts rund, abgesehen von meinen Verständnisproblemen. :)
Hast Du mal die Verweise geprüft?

Gruß aus HH
Armin
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am September 08, 2015, 09:38:20
Zitat von: dirne am September 06, 2015, 13:34:01
Hallo Wurliwurm,
Hast du da eine Tip für mich  :-\

Ja, Google.  ;)
z.b.
http://www.nirschl-coaching-entwicklung.de/2015/03/15/das-treeview-steuerelement/
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Thor75 am September 08, 2015, 18:50:30
Deckt sich ja ungefähr mit dem was ich sagte. :D
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am September 13, 2015, 09:49:15
Grüß Gott aus München!  :-)
Zitat von: Thor75 am September 05, 2015, 00:36:00
Zunächst einmal bin ich noch nicht ganz hinter die Logik gekommen wie die tblSETLEAF gefüllt wird. Was tun wenn ich mal zwei oder mal drei Ebenen in die Tiefe gehe.

Es wird zuerst der Wurzelkonten eingefügt, anschließend ein Filter im Recordset gesetzt für alle Kinder dieses Knotens und eine Schleife darüber durchlaufen. Dort wird rekursiv wieder die gleiche Logik angewendet, für Kindeskinder etc. pp. Ich würde das mal mit einer ganz simplen Struktur im Debugging verfolgen.

Die Struktur mit der SETLEAF ist nicht die einzige Lösungsmöglichkeit und nicht der Weisheit letzter Schluß. Sehr praktisch ist sie aber schon, weil man beliebige Hierarchien abbilden kann.

ZitatAber das hat wohl mit meiner Ersten Frage zu tun. Dann würde ich noch gerne den gerade angeklickten Knoten per Knopfdruck auslesen und zusammen mit einem Zeitstempel in eine Tabelle schreiben.

Das geht durchaus mit dem entsprechenden Klick-Ereignis. Hier bekommt man den Knoten und kann den Key-String auslesen und damit arbeiten.

ZitatEin echtes Highlight wäre es wenn man per Rechtsklick einen Knoten hinzufügen und man die Breite des Baumes verändern könnte. Je nachdem wieviel Platz man braucht.

Das geht sicherlich mit den entsprechenden Ereignissen, einen Knoten einzufügen. Es gibt viele Anleitungen dazu im Netz. Das Treeview kann auch drag & drop, das geht in die OO-Programmierung rein, aber damit könnte die Hierarchie auch pflegen. Bisher habe ich es aber nicht geschafft, ein Treeview flexibel breit zu machen. Dazu bräuchte es auch eine Splitpane, wo man schmaler und breiter ziehen kann. Eine solche bin ich mir nicht sicher, ob es sie gibt. Access stößt hier ein bißchen an seine Grenzen, andere Plattformen wie etwa Java Swing sind hier viel flexibler.

Bist Du noch dran an dem Thema oder hast Dich bereits für eine andere Lösung entschieden?
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Thor75 am September 13, 2015, 18:55:55
Moin aus Hamburg,

habe ich noch nicht für eine andere Methode entschieden und bin sehr an dieser interessiert scheint sie mir doch recht praktisch. Würde mich daran versuchen wollen.
Außerdem wollte ich die ANtwort abwarten. ;)
Ich hatte mal was in meinem Sammelsorium wo so ein splitter drin ist. Find es nicht wieder.
Aber man kann sich ja ran tasten.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Hondo am September 13, 2015, 19:11:30
Hallo,
nur so am Rande, man kann mit speziellen Grid-Steuerelemente hervorragend die Baumstruktur abbilden. Kommt eben darauf an was es einem Wert ist, die Teile die was taugen kosten geld und nicht wenig.

Andreas
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Thor75 am September 13, 2015, 19:22:09
Moin Andreas,

ich hörte davon.
Aber da es sich bei mir mehr oder weniger um mein Hobby handelt mit dem ich gleichzeitig die Arbeit im Büro erleichtere, ist selber basteln angesagt. Budget gibt es keins dafür.
Und Investitionen die nicht wieder raus kommen macht man einfach nicht. :D

Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: dirne am September 27, 2015, 19:44:40
Hallo,
wollte mich nochmal zurück melden,
Also bei mir läuft es jetzt auch  8)
Weiss aber noch nicht wie ich es bei mir einsetzen könnte ???
Es lag wohl an meiner Access 64bit  :-\

Lg
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Anni am Oktober 01, 2015, 14:14:09
Vielen Lieben Dank an Euch alle,
eure Vorarbeit hat mir bisher sehr geholfen.
Ich bin auch an der Stücklistenproblematik dran und benötige mal bitte einen Hinweis, wie das mit der Menge zu handhaben wäre. Es wäre insoweit für mich wichtig, als dass ich noch ein Artikelkonto für die Aufzeichnung von Zu- und Abgängen erstellen muss und die Verbuchung der Einzelkomponenten für die Auswertung des Lagerbestands wichtig ist.
Ein Link würde mich auch schon weiter bringen.

Vielen Dank schon mal
Anni
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: DF6GL am Oktober 01, 2015, 16:04:57
Hallo,


naja, in der Bewegungstabelle muss neben der Menge (und evtl. der Einheit) auch  ein Feld (Fremdschlüsselfeld für die ID aus der Konto-Tabelle) für das Konto mit geführt werden.

Was ist ein "Artikelkonto"   ? Ein Konto ist normalerweise eine Buchungs-Klassifizierung, auf dem bestimmte Kosten anfallen.

Hat aber mit einer Stückliste zunächst eher nichts zu tun.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am Oktober 01, 2015, 17:04:55
Zitat von: Anni am Oktober 01, 2015, 14:14:09
Ich bin auch an der Stücklistenproblematik dran und benötige mal bitte einen Hinweis, wie das mit der Menge zu handhaben wäre.

Um in einer der Hierarchien (~Stücklisten) die Menge zu haben, wäre die Menge als weiteres Attribut in der Tabelle SETLEAF zu führen. Zum Beispiel Hierarchie Auto mit 4 Rädern.

Um genauer einen Lösungsweg zu finden, bräuchte es eine ausführlichere Beschreibung des Vorhabens, auch mit Zahlenbeispielen.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Anni am Oktober 01, 2015, 18:21:51
Danke Johannes, dass hilft mir schon weiter.

@DF6GL
Ein Artikelkonto ist ein Begriff aus der Lagerverwaltung und vereint in sich den aktuellen Bestand, die Zu- und Abgänge sowie den voraussichtlichen Bestand zum Zeitpunkt X.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Anni am Oktober 07, 2015, 15:33:21
anbei mal ein funktionierendes TreeView mit nur einer Tabelle.
Durch Doppelklick öffnen sich die unteren Ebenen.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am Oktober 08, 2015, 10:25:16
Zitat von: Anni am Oktober 07, 2015, 15:33:21
anbei mal ein funktionierendes TreeView mit nur einer Tabelle.
Durch Doppelklick öffnen sich die unteren Ebenen.

Das ist die Minimallösung, damit läßt sich aber nur eine Hierarchie/Stückliste abbilden. Insbesondere bei Stücklisten soll aber ein Material in beliebig vielen Stücklisten vorkommen können.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Anni am Oktober 08, 2015, 10:58:50
Ich bin noch dran, für mich ist es jedoch ein Erfolg, schon mal die Abbildung hinbekommen zu haben.
Kannst du mir mal bitte sagen, ob ich gedanklich auf dem richtigen Weg bin?
Ansatz:
In einem zweiten TreeView wird das Vorhandene Material in Gruppen gegliedert (z. B. Bautei, Schraube, Kabel, etc...)
von diesen zweiten TreeView kann dann per Drag an Drop das jeweilige Material in das erste TreeView zum entsprechenden Produkt gezogen werden. Damit aus der Artikelliste (zweites TreeView) das Material nicht "verschwindet" müsste ich wohl das Drag and Drop durch eine Copie and Paste-Funktion ergänzen, oder?
Dann hab ich nur noch das Problem mit den Mengenangaben.
Vielleicht ist es eine Möglichkeit eine Abfrage zu machen, wie oft der Artikel in das Produkt eingehen soll oder man zieht es mehrfach in den TreeView ein rüber und dieser zählt dann die Menge hoch.
Oder gibt es da eine einfachere Lösung, an die ich noch nicht gedacht habe????

Für Ideen und Ansätze bin ich dankbar.
Titel: Re: Wie kann man eine Baumstruktur mit Access 2010 realisieren
Beitrag von: Wurliwurm am Oktober 08, 2015, 12:11:40
Du hast Dir einiges vorgenommen.

Es geht wahrscheinlich schon. Beim ersten Treeview muss das Ereignis startDrag ausprogrammiert werden. Da bekommt man den Node, wo man drauf war, wenn man begonnen hat, mit gedrückter Maustaste zu ziehen. Da muß man sich den Key merken. Verschwinden tut es aus nicht, nur wenn man den Key explizit löscht. Im zweiten Treeview muß dann das Ereignis beim Loslasssen vom Drag ausprogrammiert werden, wo man den Knoten abfragen muß, wo man gerade im zweiten Treeview drauf ist, und dann den vorher gemerkten Key als Kind einfügen. Nicht zu vergessen, daß das auch in der Datenbank persistent gespeichert werden soll.

Wenn das richtig flutschen soll, sind da hunderte Programmierzeilen nötig und richtig Spaß macht das in Access nicht.