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 2/2012.

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

Verwalten Sie Projekte, Aufgaben und Tätigkeiten mit der Berichtsansicht von Access 2007 und jünger.

Techniken

Berichtsansicht, Formulare, VBA

Voraussetzungen

Access 2007 und jünger

Beispieldateien

Aufgabenverwaltung.mdb

Shortlink

www.access-im-unternehmen.de/829

Aufgabenverwaltung per Berichtsansicht

André Minhorst, Duisburg

Mit Access 2007 hat Microsoft die etwas unscheinbare Berichtsansicht als weitere Ansicht für Berichte eingeführt. Auch wenn diese Ansicht nicht direkt zur Dateneingabe verwendet werden kann, ist sie dennoch ein mächtiges Werkzeug - vor allem, wenn es um die Darstellung hierarchischer Daten geht. Der vorliegende Beitrag zeigt, wie Sie damit interaktiv Projekte, Aufgaben und Tätigkeiten verwalten und sogar noch die Arbeitszeit protokollieren.

Die Lösung

Die fertige Lösung liefert die wesentlichen Funktionen in Form eines Access-Berichts in der Berichtsansicht. Diese Ansicht ist eine Mischung aus der Berichtsvorschau und einem Formular in der Endlosansicht.

Von der Berichtsvorschau erbt die Berichtsansicht die Möglichkeit, durch entsprechende Gruppierungen Daten hierarchisch anzeigen zu können. Die Formulare steuern die Interaktivität bei: Zwar können Sie in der Berichtsvorschau keine Textfelder ausfüllen oder Daten aus Kombinationsfeldern auswählen, dafür lassen sich aber Schaltflächen und andere Steuerelemente mit einer Beim Klicken-Ereignisprozedur versehen. Wie aber sollen Sie in der Berichtsansicht Daten verwalten, wenn doch die Eingabe nicht möglich ist? Kein Problem: Über das Beim Klicken-Ereignis öffnen Sie zum Eingeben und Bearbeiten von Daten einfach entsprechende Formulare.

Die fertige Lösung dieses Beitrags sieht übrigens wie in Abb. 1 aus. Im unteren Bereich zur Darstellung der Daten finden Sie die hierarchische Anzeige von Projekten, Aufgaben und Tätigkeiten. Zusätzlich erscheinen dort Schaltflächen, mit denen sich neue Elemente anlegen und vorhandene bearbeiten oder löschen lassen.

pic001.png

Abb. 1: Die Aufgabenverwaltung im Einsatz

Ganz rechts finden sich schließlich noch Symbole, welche die aktuell in Bearbeitung befindliche Tätigkeit markieren. Im oberen Teil zeigt das Formular eine Schaltfläche Projekt auswählen an, mit der Sie einen Dialog zum Ein- und Ausblenden aller in der Datenbank gespeicherten Projekte anzeigen können.

Dieses Formular wird als modaler Dialog angezeigt und zeigt alle aktuell im Bericht dargestellten Projekte schwarz hinterlegt an (s. Abb. 2). Durch einfaches Anklicken werden die Einträge sowohl im Listenfeld als auch in der Berichtsansicht ein- und ausblendet.

pic002.png

Abb. 2: Ein- und Ausblenden der aktuell in Arbeit befindlichen Projekte

Das Kontrollkästchen Erledigte Tätigkeiten anzeigen blendet eine weitere Ebene ein, die zu jeder Tätigkeit ein Kontrollkästchen anzeigt - entweder mit oder ohne Haken (s. Abb. 3). Durch einen Klick auf eine dieser Schaltflächen aktivieren beziehungsweise deaktivieren Sie eine Tätigkeit. Ist die Option Erledigte Tätigkeiten anzeigen nicht aktiviert, werden alle abgehakten Tätigkeiten ausgeblendet.

pic003.png

Abb. 3: Anzeige erledigter Tätigkeiten

Die übrigen Schaltflächen dienen dem Anlegen, Bearbeiten und Löschen von Elementen. In der obersten Ebene befindet sich nur eine Schaltfläche, mit der Sie ein Projekt anlegen können. Dies öffnet den Dialog aus Abb. 4. Hier tragen Sie einfach nur den Namen des Projekts ein und speichern diesen mit einem Klick auf die OK-Schaltfläche. Der gleiche Dialog erscheint übrigens, wenn Sie auf das Bearbeiten-Symbol eines bereits vorhandenen Projekts klicken. Damit können Sie dann die Bezeichnung eines Projekts ändern.

pic004.png

Abb. 4: Dialog zum Anlegen eines neuen Projekts

Eine Ebene darunter befinden sich die Aufgaben eines Projekts. Diese legen Sie im Dialog aus Abb. 5 an, den Sie für ein neues Projekt mit einem Klick auf die entsprechende Schaltfläche anzeigen. Auch dieser Dialog eignet sich zum Bearbeiten bestehender Elemente. Im Gegensatz zum Formular zum Anzeigen der Projektdetails liefert dieser noch ein weiteres Steuerelement, mit dem Sie die Aufgabe einem Projekt zuweisen können.

pic005.png

Abb. 5: Anlegen und Bearbeiten von Aufgaben

Fehlen noch die eigentlichen Tätigkeiten: Auch diesen Dialog haben wir relativ einfach gehalten. Er erlaubt die Eingabe einer Tätigkeitsbezeichnung und die Auswahl der Aufgabe, zu der die Tätigkeit gehört (s. Abb. 6).

pic006.png

Abb. 6: Mit diesem Dialog legen Sie Tätigkeiten an.

Für alle drei Dialoge gilt: Wir haben sie so einfach wie möglich gehalten. Lassen Sie Ihrer Fantasie freien Lauf, wenn Sie eigene Eigenschaften zu den zugrunde liegenden Tabellen und zu den entsprechenden Formularen hinzufügen.

Zeiterfassung

Ein weiteres Feature ist die Zeiterfassung. Diese erfolgt auf denkbar einfachem Wege: Sie klicken einfach auf die rote Stopp-Schaltfläche, woraufhin sich diese in ein Play-Symbol umwandelt. Dadurch wird auch die Stoppuhr oben im Bericht gestartet und eine entsprechende Aufzeichnung der Startzeit der Tätigkeit durchgeführt.

Klicken Sie anschließend erneut auf die Play-Schaltfläche, ändert sich das Symbol wieder und die Endzeit dieser Tätigkeit wird in die entsprechende Tabelle eingetragen. Ein Klick auf das Stopp-Symbol einer anderen Tätigkeit startet die Aufzeichnung eines Zeitraums für diese Tätigkeit und beendet die zuvor markierte.

Datenmodell

Das Datenmodell ist relativ einfach gehalten. Die Projekte, Aufgaben und Tätigkeiten werden in den drei Tabellen tblProjekte, tblAufgaben und tblTaetigkeiten erfasst, deren Feldlisten und Beziehungen Sie Abb. 7 entnehmen können.

pic007.png

Abb. 7: Datenmodell der Lösung

Alle Beziehungen sind mit referenzieller Integrität und Löschweitergabe definiert. Die Tabelle tblAufgaben enthält ein Fremdschlüsselfeld namens ProjektID, mit dem Sie eine Aufgabe einem Projekt zuordnen können.

Die Tabelle tblTaetigkeiten wird entsprechend über das Feld AufgabeID mit der Tabelle tblAufgaben verknüpft.

Neben dem Primärschlüsselfeld, dem Feld mit der Bezeichnung des jeweiligen Elements und dem Fremdschlüsselfeld enthalten die Tabellen noch einige wenige weitere Felder, von denen einige nur als Vorbereitung für weitere Ausbaustufen dienen. Interessant sind in der mit diesem Beitrag veröffentlichten Beispieldatenbank nur zwei Felder:

  • Das Feld ProjektSichtbar der Tabelle tblProjekte speichert, ob ein Objekt beim Öffnen des Berichts rptAufgaben eingeblendet werden soll oder nicht.
  • Das Feld TaetigkeitAktiv der Tabelle tblTaetigkeiten speichert, ob eine Tätigkeit im Bericht als erledigt markiert wurde. Ähnliche Felder sind auch in den Tabellen tblProjekte und tblAufgaben vorhanden, aus Gründen der Übersichtlichkeit werden diese jedoch in der Beispieldatenbank nicht verwendet.

Diese beiden Felder sowie die übrigen Ja/Nein-Felder der drei Tabellen tblProjekte, tblAufgaben und tblTaetigkeiten sind mit dem Standardwert Wahr ausgestattet.

Generell lässt sich zu diesen drei Tabellen sagen, dass Sie die Hierarchie beliebig ändern, umbenennen oder erweitern können, wenn sie sich nicht an Ihre eigene Arbeitsweise anpassen lässt.

Es gibt noch zwei weitere Tabellen. Die erste heißt tblOptionen und speichert einige Einstellungen des Hauptberichts, damit der Benutzer diese beim nächsten Aufruf nicht erneut vornehmen muss. Dabei handelt es sich um die aktuell aktive Tätigkeit sowie ein Ja/Nein-Feld namens ErledigteTaetigkeitenAnzeigen, das angibt, ob abgehakte Tätigkeiten angezeigt werden sollen (s. Abb. 8).

pic009.png

Abb. 9: Protokollierung von Arbeitszeiten

Die Tabelle tblArbeitszeiten schließlich speichert bei der Arbeit mit dem Hauptbericht aufgezeichnete Arbeitszeiten für die einzelnen Tätigkeiten. Dazu sind nur drei Felder nötig: die Startzeit, die Endzeit sowie ein Verweis auf die Tätigkeit, die während des angegebenen Zeitraums durchgeführt wurde (s. Abb. 9).

pic008.png

Abb. 8: Tabelle zum Speichern von Anwendungsoptionen

Der Bericht rptAufgaben

Der Hauptbericht dieser Anwendung, der in der Berichtsansicht angezeigt wird und zur Steuerung sämtlicher Funktionen der Anwendung dient, zeigt viele Möglichkeiten der Berichtsansicht auf.

Die Datenherkunft beim Öffnen des Berichts sieht wie in Abb. 10 aus. Sie enthält fast alle Felder der drei Tabellen tblProjekte, tblAufgaben und tblTaetigkeiten (allein die Fremdschlüsselfelder wurden weggelassen, da deren Werte ja bereits in den Primärschlüsselfeldern der entsprechenden referenzierten Tabellen vorliegen).

pic011.png

Abb. 10: Datenherkunft des Berichts rptAufgaben

Dabei wurde für das Feld ProjektSichtbar als Bedingung der Wert True festgelegt, damit nur ausgewählte Projekte angezeigt werden.

Das Besondere an dieser Abfrage ist, dass die Eigenschaften der Beziehungen zwischen den Tabellen so festgelegt wurden, dass Projektdatensätze auch angezeigt werden, wenn es keine passenden Aufgaben-Datensätze gibt. Auf die gleiche Weise sollen Projekte mit Aufgaben angezeigt werden, für die es keine Tätigkeits-Datensätze gibt.

Der Bericht enthält zwei Gruppierungen nach den Feldern ProjektID und AufgabeID, die jeweils mit Gruppenköpfen ausgestattet sind.

Diese legen Sie unter Access 2007 und jünger im Bereich Gruppieren, Sortieren und Summe im Fuß des Access-Fensters fest, den Sie mit dem Ribbon-Eintrag Entwurf|Gruppierung und Summen|Gruppieren und Sortieren einblenden (s. Abb. 11).

pic012.png

Abb. 11: Anlegen der Gruppierungen im Bericht rptAufgaben

Im ersten Schritt fügen Sie außerdem bereits die Felder ProjektID, Projekt, AufgabeID, Aufgabe, TaetigkeitID und Taetigkeit der Datenherkunft zu den einzelnen Bereichen wie in der Abbildung hinzu.

Die Beschriftungsfelder können Sie gleich wieder löschen und die Primärschlüsselfelder mit dem Wert Nein für die Eigenschaft Sichtbar ausblenden - diese Felder dienen nur als Bedingungen für die Anzeige verschiedener weiterer Elemente. Für eine bessere Optik verschieben Sie die Felder Projekt, Aufgabe und Taetigkeit nun an den oberen Rand der jeweiligen Bereiche, verkleinern die Höhe der Bereiche und rücken die Felder entsprechend der Hierarchie ein wenig ein.

Außerdem versehen Sie die Textfelder mit unterschiedlichen Textgrößen und gestalten diese teilweise in fetter Schrift - etwa so wie in Abb. 12.

pic013.png

Abb. 12: Anordnen und Layouten der Steuerelemente

Hier nicht sichtbar, für eine bessere Optik aber dennoch sinnvoll: Stellen Sie die Eigenschaft Rahmenart der Textfelder auf Transparent ein und passen Sie die Eigenschaft Alternative Hintergrundfarbe dem Wert für die Eigenschaft Hintergrundfarbe an (der Hintergrund soll durchgängig weiß sein).

Das Ergebnis ist ein bereits ansprechend aussehender Bericht wie in Abb. 13.

pic014.png

Abb. 13: Bericht noch ohne Steuerelemente

Schaltflächen

Für die Darstellung der Schaltflächen halten einige Tricks her. Erstens einmal enthalten die Gruppierungen und der Detailbereich überhaupt keine Schaltflächen, sondern lediglich Bildsteuerelemente, die beim Anklicken das Beim Klicken-Ereignis auslösen.

Warum das? Nun: Die Steuerelemente sollen je nach dem Inhalt des Datensatzes gegebenenfalls ausgeblendet werden und teilweise sogar verschiedene Icons anzeigen. Dies ist mit herkömmlichen Schaltflächen nicht möglich: Diese weisen immer für alle Datensätze die gleichen Eigenschaften auf und es werden immer die zuletzt per VBA zugewiesenen Werte für die Eigenschaften verwendet. Es gibt also keine Möglichkeit, einer Schaltfläche einmal ein Play-Symbol und einmal ein Stopp-Symbol zuzuweisen, wie es etwa zur Markierung der aktuellen Tätigkeit nötig ist.

Seit Access 2007 jedoch bieten Bildsteuerelemente die Möglichkeit, per Steuerelementinhalt ein in einem Anlagefeld befindliches Bild zu referenzieren. Mit Access 2010 wurde dies noch weiter vereinfacht: Sie brauchen nur noch den Namen eines in einer separaten Tabelle namens MSysResources gespeicherten Bildes anzugeben.

Daher sind für Access 2007 und Access 2010 leider verschiedene Techniken zur Anzeige der Bilder nötig, die im Detail im Beitrag Bedingte Schaltflächen (www.access-im-unternehmen.de/824) beschrieben werden. Wir beschreiben im Folgenden die unter Access 2010 durchgeführten Schritte, die Version für Access 2007 finden Sie als Download zu diesem Beitrag.

Schaltflächen anlegen

Grundsätzlich sind die Schaltflächen zum Anlegen, Bearbeiten und Löschen von Projekten, Aufgaben und Tätigkeiten ja für jedes entsprechende Objekt immer eingeblendet. Die übrigen Bilder jedoch sollen in Abhängigkeit von bestimmten Feldinhalten mit verschiedenen Icons bestückt werden:

  • Play-Icon für die aktuell bearbeitete Tätigkeit, Stopp für alle anderen
  • Kontrollkästchen-Icon mit und ohne Haken für erledigte und nicht erledigte Tätigkeiten

Beginnen wir mit der Schaltfläche zum Anlegen eines neuen Projekts. Diese landet im Prozedurkopf. Wenn Sie mit eigenen Icons arbeiten möchten, fügen Sie dieses nun wie im obigen erwähnten Beitrag beschrieben zur Datenbank hinzu.

Anschließend können Sie das Bild aufgrund seines Namens in der Tabelle MSysResources für die Eigenschaft Bild des Bild-Steuerelements auswählen. Nennen Sie das Bild-Steuerelement picNeuesProjekt, stellen Sie die Eigenschaft Größenanpassung für dieses und alle im Folgenden angelegten Bildsteuerelemente auf Abschneiden ein und nennen Sie das Steuerelement picNeuesProjekt. Danach hinterlegen Sie für die Ereigniseigenschaft Beim Klicken die folgende Ereignisprozedur:

Private Sub picNeuesProjekt_Click()

    DoCmd.OpenForm "frmProjektdetails", Datamode:=acFormAdd, WindowMode:=acDialog

    Aktualisieren

End Sub

Diese Prozedur öffnet das später beschriebene Formular frmProjektdetails zum Eingeben eines neuen Projektdatensatzes. Anschließend ruft sie die Routine Aktualisieren auf, die so aussieht:

Private Sub Aktualisieren()

    Me.Requery

    If IstFormularGeoeffnet("frmProjektauswahl") Then

        Forms!frmProjektauswahl!lstProjekte.Requery

    End If

End Sub

Dies aktualisiert nach dem Schließen des Formulars zur Eingabe der Projektbezeichnung den Bericht in der Berichtsansicht. Außerdem wird das Listenfeld des Formulars zum Ein- und Ausblenden der Projekte aktualisiert, sofern dieses aktuell geöffnet ist - auch dieses Formular beschreiben wir weiter unten.

Fügen Sie nun auf die oben beschriebene Weise drei Bild-Steuerelemente zum Gruppenkopf ProjektID hinzu und nennen Sie diese picAufgabeAnlegen, picProjektBearbeiten und picProjektLoeschen (s. Abb. 14).

pic016.png

Abb. 14: Anlegen der drei Bild-Steuerelemente auf Projektebene

Das Bild-Steuerelement picAufgabeAnlegen führt beim Anklicken die folgende Prozedur aus:

Private Sub picAufgabeAnlegen_Click()

    DoCmd.OpenForm "frmAufgabendetails", Datamode:=acFormAdd, OpenArgs:=Me!ProjektID, WindowMode:=acDialog

    Aktualisieren

End Sub

Dabei wird das Formular frmAufgabendetails zum Anlegen eines neuen Datensatzes der Tabelle tblAufgaben geöffnet. Als zusätzlicher Parameter wird mit OpenArgs die ID des übergeordneten Projekts übergeben. Diese ProjektID wird als Wert des Fremdschlüsselfeldes für den neuen Datensatz der Tabelle tblAufgaben benötigt.

Zum Bearbeiten eines Projekts klickt der Benutzer auf das Bild-Steuerelement picProjektBearbeiten.

Dieses öffnet das bereits zum Anlegen des Projekts verwendete Formular frmProjektdetails und filtert dieses nach der ProjektID des Datensatzes, auf dessen Bild-Steuerelement der Benutzer geklickt hat:

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:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.