Ich möchte in Access eine Applikation für Projektkostencontrolling erstellen. Dafür brauche ich eine Art Kategoriebaum. Man kann sich das am Besten wie ein Directory auf einem Datenträger vorstellen. Es gibt einen Stamm und dann Äste, die man beliebig anlegen können soll. In jeder dieser Kategorien möchte ich dann Planzahlen und Kosten ablegen können. Diese sind natürlich in einer jeweils eigenen Tabelle und beziehen sich jeweils nur auf einen Ast. Die Zahlen sollen sich in Richtung Stamm immer kumulieren, so dass am Stamm nur mehr eine Gesamtsumme übrigbleibt.
Mein Problem ist, dass ich mir momentan nicht so recht vorstellen kann, wie ich diese Kategorien in Access abbilden soll. Optimalerweise soll es auch möglich sein, die Kategorien beliebig zu verschieben, also auch in andere Ebenen und in andere Äste.
Zusätzliche Frage: Wie kann ich eine solche Baumstruktur grafisch anzeigen und ev. auch in dieser Anzeige verwalten (also z.B. so, wie beim Windows-Explorer)
Vielen Dank für jeden Tipp!
Ewald
Das geht schon - mit dem TreeView-Control - ist allerdings (speziell was das Verschieben von Nodes angeht) nicht mit knappen Worten zu erklären. Vielleicht nimmst du mal Karl Donaubauers FAQ 6.18 (http://www.donkarl.com/FAQ/FAQ6VBA.htm#6.18) als Einstieg.
Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)
Hallo Reinhard,
Vielen Dank für den Tipp. Allerdings ist das ein wenig zu hoch für mich. Ich muss mich also nach einer einfacheren Lösung umsehen.
Liebe Grüße
Ewald
Nun, wenn es wirklich eine derartige Baumstruktur sein soll, ist es wohl einfacher kaum hinzubekommen. Aber vielleicht kannst du ja die Funktionalität etwas abmagern (speziell das Verschieben der Kategorien).
Eine andere - vielleicht etwas verrückte - Idee: Nimm halt den Explorer - d.h. bilde deine Kategorien auf einen Dateibaum ab. (Problem dabei dürfte sein, Änderungen in der Verzeichnisstruktur wieder zurück in die Datenbank zu bekommen)
Ganz allgemein bleibt anzumerken, dass eine relationale Datenbank nicht die ideale Struktur für die Speicherung hierarchischer Daten bzw. baumartiger Strukturen bildet. Auf jeden Fall müsstest du da noch dran feilen (speziell daran, dass jede Kategorie in einer eigenen Tabelle abgelegt ist).
Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Reinhard,
Nochmals vielen Dank für deine Antwort und gleichzeitig entschuldigung, dass ich so spät antworte.
Ich hab das vorläufig so gelöst, dass ich fünf Tabellen angelegt habe, in der jeweils eine Kategorieebene abgelegt ist. Ab Ebene 2 ist in der Tabelle ein Feld „Vorkategorie“, das mit dem Feld „Kategorie“ der Vorebene verknüpft ist. Den Anspruch der grafischen Darstellung, das Verschieben usw. hab ich schon aufgegeben. Momentan bin ich auf der Suche nach einer Lösung, mit der man diese Kategoriestruktur halbwegs komfortabel warten kann. Hast du dafür eine Lösung?
Liebe Grüße
Ewald
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Nein, da fällt mir leider nur wenig ein…
Wenn die Änderungen nicht allzu häufig auftreten, kann man - nach einiger Schulung - sicher die Tabellen direkt warten. Die Gefahr, dadurch Inkonsistenzen hineinzubringen, ist natürlich recht groß. Dem kann man aber z.B. durch entsprechende Prüfabfragen („Gibt es eine Oberkategorie zu dieser Kategorie“ usw.) begegnen.
Man kann die Kategoriestruktur natürlich auch in ein geeignetes Nummerierungssystem abbilden (ist zwar gewissermaßen „vorsintflutlich“ bzw. nicht-Datenbank-gerecht, aber dem Anwendern noch relativ leicht zu vermitteln.
Das ganze hängt aber mal wieder sehr stark von den genauen Randbedingungen und Anforderungen ab - die ich ja nun nicht kenne…
Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)