Projektverwaltung mit Access, Teil 2

Autor: André Minhorst, Duisburg

!

Das Management von Projekten ist eine recht komplexe Aufgabe – so komplex, dass Sie in der vorliegenden Ausgabe von Access im Unternehmen den zweiten Teil zu der Projektverwaltung aus Ausgabe 2/2002 finden. Die Projektverwaltung erhält eine neue Funktion zur Eingabe und Auswertung der für die einzelnen Projekte aufgewendeten menschlichen Ressourcen – sprich: Welche Mitarbeiter haben eigentlich wie viel Zeit mit welchen Projekten verbracht Diese und weitere Informationen können Sie mit der hier vorgestellten Erweiterung der bestehenden Projektverwaltung übersichtlich in Form geeigneter Berichte ausgeben.

Abb. 1: Datenmodell der Projektverwaltung

Der zweite Teil der Projektverwaltung bringt zwei neue Features sowie damit in Zusammenhang stehende änderungen des Datenmodells mit sich.

Hinweis

Den ersten Teil dieser Beitragsreihe finden Sie auf der Heft-CD. Die Beispieldatenbanken mit den neuen Versionen der Projektverwaltung finden Sie ebenfalls auf der Heft-CD unter den Dateinamen Projektverwaltung97.mdb sowie Projektverwaltung2000.mdb.

Bei den zwei neuen Features handelt es sich um die Möglichkeit zur Eingabe von Arbeitszeiten der einzelnen Mitarbeiter sowie die Auswertung der eingegebenen Arbeitszeiten.

Die Eingabe der Arbeitszeiten erfolgt in halbstündigen Intervallen und ist streng projektbezogen. Das ermöglicht die Auswertung der Arbeitszeiten bezogen auf Mitarbeiter und Projekte.

Neben der Ausgabe der Arbeitszeiten je Mitarbeiter und Projekt in Form von Berichten ermöglicht ein spezielles Formular einen Tagesüberblick über die Arbeitszeiten von Mitarbeitern – entweder bezogen auf alle oder nur die an einem ausgewählten Projekt beteiligten Mitarbeiter.

Das Datenmodell besteht im Wesentlichen aus den Tabellen tblProjekte, tblProjektphasen und tblTaetigkeiten. Die Tabellen sind jeweils durch 1:n-Beziehungen miteinander verknüpft (s. Abb. 1).

Ebene der Projekte

Die Tabelle tblProjekte beinhaltet die einzelnen Projekte als oberste Ebene der Hierarchie des Datenmodells. Die Tabelle enthält ein Feld zur Angabe einer Projektbezeichnung sowie zwei Felder mit dem Start- und dem Enddatum des Projektes.

Jedes Projekt ist mit je einem Eintrag der Tabellen tblMitarbeiter und tblKunden verknüpft. Die Verknüpfung zur Tabelle tblMitarbeiter dient der Festlegung des Projektleiters. Mit dem Verweis auf die Tabelle tblKunden legen Sie den Kunden fest, für den Sie das Projekt durchführen.

Ebene der Phasen

Die nächste Ebene unter einem Projekt sind die einzelnen Projektphasen. Die Tabelle tblProjektphasen beinhaltet Informationen zu den Phasen wie die Bezeichnung und den Start- und den Endtermin.

Genau wie die Tabelle tblProjekte enthält auch die Tabelle tblProjektphasen einen Verweis auf die Tabelle tblMitarbeiter, um den für die Projektphase verantwortlichen Mitarbeiter festzulegen. Das Feld ProjektID dient zur Auswahl eines Projektes aus der Tabelle tblProjekte, zu dem die Projektphase gehört.

Hinweis

Bei den Projekten finden Sie eine der änderungen im Datenmodell gegenüber der Projektverwaltung des ersten Teils: Es ist nunmehr nicht mehr möglich, zu den einzelnen Projektphasen Unterphasen anzulegen. Die Anzeige der Projekte wurde entsprechend angepasst.

Speicherung von Tätigkeiten

Die nächste Ebene des Datenmodells bilden die einzelnen Tätigkeiten. Die Informationen zu den Tätigkeiten befinden sich in der Tabelle tblTaetigkeiten. Genau wie die Tabellen tblProjekte und tblProjektphasen hat auch diese Tabelle einen Verweis auf die Tabelle tblMitarbeiter. Er dient allerdings nicht zur Auswahl des Verantwortlichen, sondern des Ausführenden der Tätigkeit.

Weitere Felder dienen zur Angabe der ausgeführten Tätigkeit, des Datums der Tätigkeit sowie des Zeitraums. Die Angabe des Zeitraums erfolgt durch die Auswahl der Start- und der Endzeit aus einer separaten Tabelle namens tblUhrzeiten. Die Tabelle enthält alle Tageszeiten in halbstündigen Abständen.

Kategorisieren der Tätigkeiten

Die einzelnen Tätigkeiten können Sie über eine Verknüpfung zur Tabelle tblTaetigkeitsarten grob kategorisieren. Die Tabelle enthält neben dem Namen der Tätigkeitsart noch einen Farb-code. Das Formular zur Anzeige der Tätigkeiten eines Tages verwendet die Farbangaben zu deren übersichtlicheren Darstellung.

Mitarbeiter und Arbeitszeiten

Die Tabelle tblMitarbeiter ist um zwei Felder erweitert worden: ArbeitszeitVon und ArbeitszeitBis. Diese Informationen benötigen Sie, um im Formular der Tätigkeiten eines Mitarbeiters direkt die Zeiten zu markieren, in denen der Mitarbeiter nicht verfügbar ist.

Da es im Vergleich zu der im ersten Teil des vorliegenden Beitrages beschriebenen Musterlösung nun nicht mehr nur die Projekte und deren Phasen, sondern auch noch die Tätigkeiten der Mitarbeiter eines Tages und einige Berichte zur Anzeige von Informationen gibt, benötigen Sie ein Hauptformular zur Auswahl der gewünschten Darstellungsart (s. Abb. 2).

Abb. 2: Hauptmenü der Projektverwaltung

Das Hauptmenü bietet vier Optionen. Die unterschiedlichen Optionen führen zu folgenden Ansichten:

  • Alle Projekte: zeigt eine Auflistung der wichtigsten Projektdaten aller Projekte an und dient zur Auswahl, Neuanlage und Bearbeitung von Projekten
  • Tagesansicht: enthält einen überblick über alle an dem angegebenen Tag durchgeführten Tätigkeiten aller oder der an dem ausgewählten Projekt beteiligten Mitarbeiter
  • Projektdaten: enthält das bereits im ersten Teil des vorliegenden Beitrags beschriebene Formular zur Darstellung eines Projektes und seiner Detaildaten
  • Auswertungen: zeigt eine projekt- oder mitarbeiterbezogene Auswertung der Tätigkeiten in dem gewählten Zeitraum an
  • Abb. 3: Anzeige der Tätigkeiten eines Tages

    Da die Aufrufe teilweise eng mit den Funktionen verknüpft sind, folgt deren Beschreibung mit den jeweiligen Funktionen.

    Die Verwaltung von Projekten ist nicht zuletzt die Kunst, mit minimaler Mitarbeiteranzahl eine große Menge Projekte in möglichst kurzer Zeit abzuarbeiten – und dabei nicht den überblick zu verlieren. Daher ist es nicht nur sinnvoll, nach der Durchführung eines Projektes einen Rückblick auf die eingesetzten Ressourcen zu werfen, sondern auch während der Projekte genau zu wissen, welcher Mitarbeiter wann an welchem Projekt arbeitet.

    Formular zur Anzeige vonTätigkeiten

    Zu diesem Zweck erstellen Sie nun ein Formular, mit dem Sie für jeweils einen Kalendertag alle Mitarbeiter und deren Tätigkeiten anzeigen können.

    Das Formular hat einen ähnlichen Aufbau wie das Formular zur Anzeige von Projekten aus dem ersten Teil der Beitragsserie.

    Im Kopf des Formular legen Sie vier Steuerelemente an – zwei Textfelder und zwei Schaltflächen.

    Das erste Textfeld namens txtDatum zeigt das Datum des Tages an, für den die Tätigkeiten aufgelistet werden sollen.

    Das zweite Textfeld namens txtProjekt zeigt an, ob die Mitarbeiter zu einem bestimmten Projekt oder alle Mitarbeiter angezeigt werden.

    Die beiden Schaltflächen cmdTagZurueck und cmdTagVor dienen zum Vor- und Zurückblättern des angezeigten Datums.

    Das Formular enthält jeweils eine Zeile in Form eines Unterformulars für jeden Mitarbeiter. Jede Zeile enthält den Namen des Mitarbeiters, je ein Kästchen für jede halbe Stunde des Kalendertages sowie eine Schaltfläche zum öffnen des Formulars zur Anzeige der Tätigkeiten des Mitarbeiters (s. Abb. 3).

    Abb. 4: Aufruf der Tagesansicht über das Formular frmUebersicht

    Die dunklen Felder zeigen Zeiten an, dass der Mitarbeiter nicht zur Verfügung steht – entweder weil sie nicht in seiner Arbeitszeit liegen oder weil er einen als außer Dienst bezeichneten Tätigkeitszeitraum festgelegt hat.

    Die weißen Felder zeigen Zeiten ohne Zuordnung irgendeiner Tätigkeit an. Sämtliche anders eingefärbten Felder entsprechen den in der Legende angegebenen Tätigkeitsarten.

    Aufbau des Formulars

    ähnlich wie das Formular zur Anzeige ganzer Projekte verwendet auch dieses Formular eine Reihe von Unterformularen, um die Daten für die einzelnen Mitarbeiter anzuzeigen.

    Hinweis

    Zur Erinnerung: Unter Access 97 ist es gar nicht und unter Access 2000 nur eingeschränkt möglich, Daten in Endlosformularen unterschiedlich zu formatieren. Daher verwenden Sie Unterformulare zur Anzeige der mit unterschiedlichen Farben markierten Zeiträume.

    Im ersten Teil der Beitragsreihe verwendeten Sie eine feste Anzahl von Unterformularen, um die unterschiedlichen Projektphasen anzuzeigen. Das hatte zwei Nachteile: Wenn die tatsächliche Anzahl von Datensätzen kleiner als die Anzahl der angezeigten Unterformulare war, verschenkten Sie unnötig Platz. War die tatsächliche Anzahl größer, konnten nur die ersten n Phasen angezeigt werden.

    Das Formular zur Anzeige der Tätigkeiten der einzelnen Mitarbeiter soll dieses Problem umgehen. Dazu wird die benötigte Anzahl von Unterformularen vor dem öffnen des Formulars ermittelt. Anschließend erstellt eine Prozedur dynamisch die benötigte Anzahl Unterformulare – also für jeden beteiligten Mitarbeiter eines.

    Aufruf des Formulars

    Das Hinzufügen von Steuerelementen zur Laufzeit erfordert das öffnen des gewünschten Objektes – in diesem Fall eines Formulars – in der Entwurfsansicht. In der Formularansicht ist kein Hinzufügen oder Entfernen von Elementen des Formulars möglich.

    Da die Ereignisse eines Formulars nur zur Laufzeit des Formulars ausgelöst werden können, kann die Erstellung der benötigten Steuerelemente nicht durch die Ereignisse des Formulars selbst erfolgen.

    Die Erstellung der benötigten Unterformulare erfolgt im aufrufenden Formular frmUebersicht.

    Abb. 4 zeigt den Bereich des Formulars frmUebersicht in der Entwurfsansicht, mit dem Sie nach der Auswahl der gewünschten Parameter die Tagesübersicht aufrufen können.

    Mit der Optionsgruppe optgrpMitarbeiter legen Sie fest, ob alle Mitarbeiter oder nur die an einem bestimmten Projekt beteiligten Mitarbeiter angezeigt werden sollen. Dabei legen Sie mit dem Kombinationsfeld cboProjekt das gewünschte Projekt fest.

    Mit der Schaltfläche cmdTagesansicht starten Sie das Ereignis zum Anpassen des Formulars zur Anzeige der Tätigkeiten. Dazu legen Sie die Prozedur aus Quellcode 1 für die Ereigniseigenschaft Beim Klicken der Schaltfläche an.

    Die Prozedur ermittelt, ob Sie die Tätigkeiten aller oder nur die der an dem ausgewählten Projekt beteiligten Mitarbeiter ausgeben möchten. Wenn Sie alle Mitarbeiter in die Anzeige einbeziehen möchten, setzt die Prozedur die globale Variable AlleMitarbeiter auf den Wert True. Falls nicht, erhält die Variable den Wert False. Außerdem erhält die Variable AktuellesProjekt die ID des ausgewählten Projektes.

    Die globalen Variablen legen Sie bitte in einen neuen Klassenmodul namens mdlGlobal an.

    Die Prozedur TagesansichtAktualisieren (s. Quellcode 2) legen Sie in einem neuen Standardmodul namens mdlTagesansicht an. Der Grund liegt darin, dass Sie die Prozedur zur Anzeige der Tagesübersichten später noch von weiteren Formularen aus aufrufen.

    Die Prozedur fragt nach dem Deklarationsteil zunächst die soeben gesetzten globalen Variablen ab. Wenn der Anwender die Anzeige der Tätigkeiten aller Mitarbeiter gewählt hat, dient die komplette Tabelle tblMitarbeiter als Grundlage für die zu erstellenden Unterformulare.

    Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
    Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
    Zur Bestellung ...
    Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
    Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar