Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 5/2005.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erstellen Sie eine Lösung, mit der sich die Tätigkeiten für verschiedene Projekte mit einem oder mehreren Mitarbeitern verwalten lassen.

Techniken

Formulare, Systray

Voraussetzungen

Access 2000 oder höher

Beispieldateien

Projektzeitmanager00.mdb

Projektzeitmanager

André Minhorst, Duisburg

Haben Sie sich nicht auch schon immer einmal gewünscht, auf ganz einfache Art zu dokumentieren, womit Sie am Arbeitsplatz so Ihre Zeit verbringen? Wie haben Sie das angestellt - mit handschriftlichen Einträgen in einen Kalender oder ein in Büchlein, mit einer Excel-Tabelle oder vielleicht auch direkt in Outlook? Keine Sorge: Auch der Autor dieser Zeilen hat schon einige Varianten durchexerziert, ohne die gesammelten Daten anschließend auch nur einmal auszuwerten. Warum das so ist und wie Sie es sich einfacher machen, erfahren Sie in diesem Beitrag.

Zeiten und Tätigkeiten

Egal, ob Sie nun selbstständig oder angestellt sind - entweder es interessiert Sie selbst oder Ihren Chef, ob die Zeit, die Sie mit den verschiedenen Tätigkeiten verbringen, auch gut genutzt ist.

Die wichtigste Voraussetzung dazu ist, dass Sie jede Tätigkeit, die mit den betroffenen Projekten zusammenhängt, auch notieren - am besten minutengenau. Das ist allerdings gar nicht so einfach und erfordert genau wie das konzentrierte Arbeiten an den Projekten ein gewisses Maß an Disziplin. Sie kennen das vielleicht: Ein Projekt drängt, man nimmt sich vor, die Tätigkeiten am Abend zu notieren, es wird spät, am nächsten Morgen ist auch keine Zeit und ehe man sich versieht, liegt die letzte Eintragung so weit zurück, dass man die Zeiten nicht mehr exakt zusammenbekommt.

Dabei ist es übrigens egal, ob nun ein Kalender, ein Block, eine Excel-Tabelle oder Sonstiges als Notationswerkzeug herhalten muss. Und das liegt meist daran, dass der Aufwand für einen Eintrag zu groß ist, als dass man ihn gerne zwischen zwei Tätigkeiten auf sich nimmt.

Sie ahnen es bereits: Dieser Beitrag soll eine Möglichkeit vorstellen, die für verschiedene Tätigkeiten benötigte Zeit auf möglichst einfache Weise zu notieren. Dass die so gesammelten Informationen später auch noch ausgewertet werden, versteht sich von selbst.

Wenn Sie bereits den Beitrag Software-Architektur aus dieser Ausgabe gelesen haben, wissen Sie schon, wie die Anwendung im Einzelnen aussehen soll - ansonsten hier die Kurzform:

  • Die Anwendung liefert zwei Frontends: Eines zur Auswertung und eines zur Eingabe der Tätigkeiten und der Zeiten.
  • Das Frontend zur Eingabe der Tätigkeiten soll schnell aufzurufen sein, nur die nötigsten Informationen anzeigen und vor allem eine schnelle Eingabe der benötigten Daten ermöglichen.
  • Den ersten Teil dieser Anwendung lernen Sie in dieser Ausgabe kennen: Er umfasst das komplette Frontend zur Eingabe von Daten sowie die Teile des Auswertungsfrontends, die für die Verwaltung der für die Eingabe benötigten Informationen wie Mitarbeiter und Projekte erforderlich sind.

    Achtung, Betriebsrat!

    Wenn Sie planen, ein Tool wie das hier vorgestellte in einem größeren Unternehmen einzusetzen, sollten Sie dies vorher mit dem Betriebsrat abklären. Die Erfassung von Tätigkeitszeiten wird von diesem meist nicht gern gesehen.

    Die Projektzeiterfassung

    Bevor Sie in den nächsten Kapiteln erfahren, wie Sie Ihr eigenes Tool zur Erfassung von Tätigkeiten und der entsprechenden Zeiten erstellen, schauen Sie sich erst einmal an, was dabei herauskommen soll.

    In Lauerstellung

    Abb. 1 zeigt, wo Sie den Projektzeitmanager finden, wenn Sie mit anderen Dingen beschäftigt sind: Er wartet geduldig im Systray von Windows auf seinen Einsatz.

    Abb. 1: Der Projektzeitmanager zieht sich in das Systray zurück ...

    Per Doppelklick oder wie in Abb. 2 zu erkennen per Kontextmenü lässt sich der Projektzeitmanager aktivieren. Letztere Variante eröffnet zusätzlich die Möglichkeit, die Anwendung zu beenden oder die komplette Access-Anwendung anzuzeigen.

    Abb. 2: ... und lässt sich bei Bedarf von dort aktivieren.

    Die komplette Anwendung anzeigen? Ja, Sie lesen richtig: Der Projektzeitmanager offenbart sich lediglich durch ein einzelnes Formular ohne Access-Fenster. Das sieht dann etwa wie in Abb. 3 aus.

    Projektzeiten im Überblick

    Hier finden sich auch direkt die wesentlichen Bedienungsmerkmale des Frontends für die Eingabe von Tätigkeiten - die Liste der Projekte des im Kopf angegebenen Mitarbeiters. Das Formular ermittelt automatisch aus einer Tabelle den Mitarbeitereintrag, der dem unter Windows angemeldeten Benutzer entspricht, und zeigt dessen Projekte an. Das aktuelle Projekt wird grau unterlegt dargestellt.

    Das Formular bietet fünf mögliche Aktionen:

  • Auswählen eines anderen als des grau markierten Projekts als neues, aktuelles Projekt
  • Den Eintrag Keine aktuelle Tätigkeit auswählen und damit die aktuelle Tätigkeit beenden
  • Ausblenden des Formulars
  • Öffnen eines Dialoges zum Verwalten der angezeigten Projekte
  • Beenden der Anwendung mit der Schließen-Schaltfläche
  • Tätigkeitsinformationen im Nu

    Beim Verlassen der aktuellen Tätigkeit zu einer anderen oder ohne Aufnahme einer neuen Tätigkeit erscheint der Dialog aus Abb. 4. Dort sind lediglich zwei Felder auszufüllen: Die Tätigkeitsbeschreibung und die Tätigkeitsart, wobei Letztere lediglich die Auswahl eines bestehenden Wertes erfordert. Alle anderen Informationen wie das betroffene Projekt, der aktuelle Mitarbeiter, Startzeit und Endzeit sind bereits vorausgefüllt und werden nur zur Kontrolle angezeigt.

    Abb. 3: Formular ohne Accessfenster:
    Der Projektzeitmanager.

    Abb. 4: Anlegen der Beschreibung einer Tätigkeit

    Nach dem Betätigen der OK-Schaltfläche wechselt das Formular aus Abb. 3 den als aktuelles Projekt markierten Eintrag.

    Projekte verwalten

    Mit der Schaltfläche Projekte verwalten öffnen Sie den Dialog aus Abb. 5. Dieser Dialog zeigt alle Projekte an, die dem aktuellen Mitarbeiter zugeordnet sind.

    Der Mitarbeiter kann hier selbst festlegen, welche Projekte im Projektzeitmanager angezeigt werden sollen. Außerdem lässt sich hier die Reihenfolge der Einträge einstellen.

    Selbst die wichtigsten Mitarbeiter mit vielen Projekten können hier aussortieren und Prioritäten festlegen.

    Die Reihenfolge stellen Sie mit den vier Schaltflächen rechts vom Listenfeld ein. Der Beitrag Listenfelder individuell sortieren (Shortlink 285) liefert die Grundlagen für die hier verwendete Technik.

    Aktivieren und deaktivieren lassen sich Einträge per Doppelklick. Das x in der Spalte Aktiv verschwindet für nicht aktivierte Einträge. Nicht aktivierte Einträge erscheinen nicht im Projektzeitmanager.

    Abb. 5: Dialog zum Verwalten der Projekte des aktuellen Mitarbeiters

    Eingabe von Daten

    Natürlich müssen Sie vor der Inbetriebnahme des Tools einige Daten eingeben - zumindest die Projekte und Mitarbeiter. Dazu dienen zwei Formulare.

    Die Eingabe der Projekte erfolgt mit dem Formular aus Abb. 6. Für die Funktionstüchtigkeit des Projektzeitmanagers ist lediglich die Eingabe der Projektbezeichnung erforderlich.

    Bei den Mitarbeitern sind einige Informationen mehr einzugeben. Neben dem Vor- und dem Nachnamen ist die Eingabe des Windows-Anmeldenamens unbedingt notwendig. Anderenfalls kann der Projektzeitmanager den aktuell angemeldeten Benutzer nicht mit dem in der Tabelle angegebenen Mitarbeiter abgleichen und dessen Projekte anzeigen. Die Projekte werden übrigens ebenfalls über das Formular zur Eingabe der Mitarbeiter zugewiesen. Alle hier angegebenen Projekte werden auch in dem Formular angezeigt, das vom Projektzeitmanager aufgerufen werden kann (s. Abb. 7).

    Abb. 6: Formular zum Verwalten der Projekte

    Abb. 7: Eingeben von Mitarbeitern und ihren Projekten

    Diese beiden Formulare werden genau wie die Möglichkeiten zur Auswertung der gewonnenen Daten im zweiten Teil dieser Beitragsreihe in der folgenden Ausgabe von Access im Unternehmen vorgestellt.

    Datenmodell der Anwendung

    Mitarbeiter und Projekte bilden den Mittelpunkt der Projektzeitverwaltung. Diese werden jeweils in einer eigenen Tabelle gespeichert. Zwischen diesen beiden Tabellen gibt es verschiedene Verknüpfungen, die in Abb. 8 zu erkennen sind: Die erste wird über eine 1:n-Beziehung realisiert, die das Fremdschlüsselfeld ProjektleiterID der Tabelle tblProjekte mit der Tabelle tblMitarbeiter verknüpft.

    Die zweite Beziehung wird als m:n-Beziehung über eine Verknüpfungstabelle hergestellt. Mit dieser Verknüpfung lassen sich jedem Mitarbeiter die Projekte zuweisen, die für diesen im Projektzeitmanager zur Verfügung stehen sollen.

    Die Verknüpfungstabelle tblProjekteMitarbeiter enthält noch ein paar Felder mehr als nur die Verknüpfungsfelder zu den Tabellen tblProjekte und tblMitarbeiter.

    Diese sind allesamt für die Anzeige der Projekte eines Mitarbeiters im Projektzeitmanager verantwortlich:

  • Aktiviert: Legt fest, ob ein dem Mitarbeiter zugewiesenes Projekt auch im Projektzeitmanager angezeigt wird.
  • ReihenfolgeID: Legt die Reihenfolge fest, in der die aktiven Projekte angezeigt werden - so können wichtige oder oft benötigte Projekte weiter oben angeordnet werden.
  • Aktuell: Wird auf Ja eingestellt, wenn es sich bei dem Projekt um das derzeit bearbeitete Projekt eines Mitarbeiters handelt. Dieses Feld kann nur für jeweils ein Projekt eines Mitarbeiters auf den Wert Ja eingestellt werden.
  • Die Tabelle tblMitarbeiter enthält den Vor- und den Nachnamen eines Mitarbeiters sowie den Windows-Anmeldenamen. Über den Windows-Anmeldenamen wird ermittelt, welcher der in der Tabelle enthaltenen Mitarbeiter der aktuelle Mitarbeiter ist. Nur für diesen zeigt der Projektzeitmanager Informationen an.

    Die Projekttabelle liefert übliche Projektinformationen wie Bezeichnung, Beschreibung, Kunde oder Start- und Enddatum. Die Kunden werden dabei über das Fremdschlüsselfeld KundeID mit den Einträgen der Tabelle tblKunden verknüpft.

    Abb. 8: Datenmodell der Projektzeitverwaltung

    Die Tabelle tblProjektzeiten dient genau wie die Tabelle tblProjekteMitarbeiter als Verknüpfungstabelle zur Herstellung einer m:n-Beziehung zwischen Projekten und Mitarbeitern.

    Die Tabelle ist jedoch mehr als nur eine Verknüpfungstabelle: In ihr werden die Zeiten gespeichert, welche die Mitarbeiter mit den ihnen übertragenen Projekten verbringen.

    Außerdem soll zu jedem zusammenhängenden Zeitraum eine Tätigkeitsbeschreibung und eine Tätigkeitsart eingegeben werden.

    Die Tätigkeitsart lässt sich dabei über das Fremdschlüsselfeld Taetigkeitsart aus der Tabelle tblTaetigkeitsarten auswählen.

    Für das Feld Aktiviert sollten Sie außerdem die Eigenschaft Standardwert auf den Wert Ja einstellen, damit die einem Mitarbeiter zugeteilten Projekte im später beschriebenen Formular auch direkt angezeigt werden.

    Das Projektzeitmanager-Formular

    In diesem ersten Teil der Beschreibung des Projektzeitmanagers spielt das Formular frmProjektzeiteingabe die Hauptrolle. Es listet die für einen Mitarbeiter festgelegten Projekte auf und bietet die Möglichkeit, ein Projekt als das aktuelle Projekt auszuwählen oder anzugeben, dass man gerade nicht mit einem Projekt beschäftigt ist (s. Abb. 3).

    In der Entwurfsansicht sieht das Formular wie in Abb. 9 aus. Betrachten Sie zunächst die Textfelder zur Anzeige der Projekte beziehungsweise des Textes Keine aktuelle Tätigkeit (Steuerelementname: txtKeineTaetigkeit). Die Anzeige der Projekte erfolgt über ein gebundenes Textfeld namens Projektbezeichnung, das seine Daten aus dem Feld Projektbezeichnung der zugrunde liegenden Datenherkunft bezieht.

    Anpassen des Layouts

    Damit wie in Abb. 3 mehrere Projekte gleichzeitig angezeigt werden, stellen Sie die Eigenschaft Standardansicht auf Endlos ein. Stellen Sie außerdem die Eigenschaften Datensatzmarkierer, Navigationsschaltflächen und Trennlinien auf den Wert Nein ein.

    Abb. 9: Das Formular zur Eingabe von Projektzeiten in der Entwurfsansicht

    Diese Datenherkunft heißt qryfrmProjektzeiteingabe und sieht wie in Abb. 10 aus. Die Abfrage enthält Felder der verknüpften Tabellen tblProjekte, tblProjekteMitarbeiter und tblMitarbeiter.

    Die Abfrage beinhaltet zwei Kriterien: Das Feld MitarbeiterID muss mit dem Ergebnis der Funktion AktuellerMitarbeiter übereinstimmen und das Feld Aktiviert muss den Wert Wahr enthalten.

    Abb. 10: Datenherkunft des Formulars frmProjektzeiteingabe

    Quellcode 1: Ermitteln des aktuellen Mitarbeiters

    Public Function AktuellerMitarbeiter() As Long

        Dim strWindowsAnmeldename As String

        Dim db As DAO.Database

        Dim rstMitarbeiter As DAO.Recordset

        Dim lngMitarbeiterID As Long

        Set db = CurrentDb

        strWindowsAnmeldename = CurrentWinUser

        Set rstMitarbeiter = db.OpenRecordset( _
            "SELECT MitarbeiterID FROM tblMitarbeiter " _
            & "WHERE WindowsAnmeldename = '" _
            & strWindowsAnmeldename & "'", dbOpenDynaset)

        If Not rstMitarbeiter.EOF Then

            lngMitarbeiterID = rstMitarbeiter!MitarbeiterID

        Else

            lngMitarbeiterID = 0

        End If

        AktuellerMitarbeiter = lngMitarbeiterID

        rstMitarbeiter.Close

        Set rstMitarbeiter = Nothing

    End Function

    Quellcode 2: Initialisieren des Formulars

    Private lngProjektID As Long

    Private Sub Form_Open(Cancel As Integer)

        Dim strIcon As String

        lngProjektID = AktuellesProjekt(Me!MitarbeiterID)

        If Not lngProjektID = 0 Then

            Me.Recordset.FindFirst "ProjektID = " & lngProjektID

            strIcon = Datenbankpfad & "green.ico"

        Else

            strIcon = Datenbankpfad & "red.ico"

        End If

        SetFormIcon Me.hWnd, strIcon

        SetTrayIcon Me.hWnd, strIcon

        RestoreForm Me.hWnd

    End Sub

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sind Sie Abonnent?Jetzt einloggen ...
     

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    Verwandte Beiträge:

    Softwareprojekte verwalten

    Formularposition speichern und wiederherstellen

    Modale Dialoge mal anders

    Lastschrifteinzug per Datenträgeraustausch

    Validieren mit Klasse

    Preise und Mehrwertsteuer verwalten

    Excel-Import-Assistent im Eigenbau

    Tilgen mit Access und Excel

    Benutzerverwaltung

    Meldungsfenster im Eigenbau

    Transparenz und andere Effekte in Formularen

    Formulare im Blickpunkt

    Zeugnisverwaltung mit Access

    Verwaltung von Projekten des Handwerks

    Zugriff auf Formulare

    Änderungsdaten protokollieren

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.