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/2003.

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

Skills mit Access verwalten

von Klaus Giesen, Wuppertal

Skills ist die "neudeutsche" Bezeichnung für Fähigkeiten oder Kompetenzen von Personen. Dieser Begriff ist vor allem bei freiberuflichen IT-Kräften oder Freelancern gang und gäbe, die für unterschiedliche Unternehmen arbeiten und dort aufgrund ihrer durch die Skills repräsentierten Fähigkeiten für spezielle Aufgaben herangezogen werden. Der Einsatzbereich der hier vorgestellten Datenbankanwendung ist die Verwaltung von Personen und deren Skills, um zur rechten Zeit einen geeigneten Mitarbeiter zu finden.

Anforderungen an eine
Skill-Verwaltung

Die im vorliegenden Beitrag vorgestellte Musterlösung dient neben der Verwaltung von Personen und deren Kontaktdaten primär der Erfassung von Fähigkeiten und entsprechenden Bewertungen.

Erfassung von Bewertungen

Die Bewertung von Fähigkeiten kann im einfachsten Fall durch die Zuordnung von Schulnoten erfolgen.

Aussagekräftiger ist die Zuordnung von individuellen Bewertungskriterien je Fähigkeit. Die folgenden Beispiele verdeutlichen dies:

Fähigkeit

Mögliche Bewertungen

VB-Programmierung

Gut, mittel, schlecht

Englisch

Keine Kenntnisse, Anfänger, fortgeschritten, verhandlungssicher, Muttersprache

Führerschein

Klasse 1, Klasse 2, Klasse 3

Tab. 1: Beispiele zum Bewertungssystem

Nur ein solches Bewertungssystem ermöglicht es, jeder Fähigkeit individuelle und vor allem auch aussagekräftige Bewertungen zuzuordnen. Falls Sie jedoch Schulnoten vorziehen sollten, können Sie diese natürlich ebenfalls verwenden.

Erfassung von Eindrücken

Bei der Erfassung von Skills sollte die eigene Bewertung des Bewerbers - beispielsweise aufgrund seines Bewerbungsschreibens - und eine Bewertung des Bearbeiters - beispielsweise der Eindruck beim Bewerbungsgespräch - erfasst und gegenübergestellt werden können.

Suchen

Damit die Musterlösung den Anforderungen der Praxis gerecht werden kann, sollten differenzierte Suchmöglichkeiten vorhanden sein. Dazu zählen unter anderem die Auswahl verschiedener Vergleichsoperatoren und Verknüpfungen mit AND bzw. OR. Außerdem soll die Musterlösung auch noch die Möglichkeit zur schnellen Auswahl eines bestimmten Datensatzes bieten.

Ausdruckmöglichkeiten

Da das papierlose Büro immer noch eine Fiktion ist, sieht auch diese Musterlösung zwei Ausdruckmöglichkeiten vor.

Der erste Bericht druckt alle relevanten Angaben zu einer Person in Form eines Profils aus, damit diese Angaben übersichtlich auf Papier vorliegen.

Die zweite Ausdruckmöglichkeit betrifft das Ergebnis einer Suche. In solchen Fällen ist es oftmals sinnvoll, die Kontaktangaben zu einer Person wie Telefon- und Faxnummer sowie die E-Mail-Adresse auf Papier griffbereit zu haben.

Hinweis

Diese Musterlösung zu einer Skill-Verwaltung finden Sie auf der beiliegenden CD-ROM für Access 97 (Skills97.mdb) und Access 2000 (Skills2000.mdb). (

Das Datenmodell

Das Datenmodell dieser Musterlösung benötigt zunächst die drei Tabellen tblPersonen, tblFaehigkeiten und tblBewertungen zur Erfassung der betreffenden Daten. Die Tabellen stehen in folgenden Beziehungen zueinander:

  • Eine Person kann verschiedene Fähigkeiten haben.
  • Jede Fähigkeit kann verschiedenen Personen zugeordnet werden.
  • Gleiches trifft sinngemäß auch auf die Bewertungen der einzelnen Fähigkeiten zu.
  • Die Realisierung der m:n-Beziehungen zwischen Personen und Fähigkeiten sowie Bewertungen erfolgt über die Tabelle tblPersonenUndFaehigkeiten. Die folgenden Abschnitte beschreiben den genauen Aufbau der einzelnen Tabellen.

    Die Tabelle tblPersonen

    Die Tabelle tblPersonen (s. Abb. 1) dient dem Speichern der Stammdaten. Sie enthält - neben den üblichen personenbezogenen Feldern - weitere speziell für die vorliegende Aufgabenstellung notwendige Felder.

    Die Namen dieser Felder und eine dazugehörende Beschreibung entnehmen Sie Tab. 2.

    Feld

    Beschreibung

    StundensatzVon

    Untergrenze des Stundensatzes

    StundensatzBis

    Obergrenze des Stundensatzes

    Quelle

    Woher stammt der Kontakt? Anzeige, Bewerbung, Internet usw.

    VerfügbarkeitInProzent

    Typische Angabe für Freiberufler: Die prozentuale Verfügbarkeit für einen bestimmten Auftraggeber

    Taetigkeitsraum

    Postleitzahlbereich, deutschland- oder europaweit.

    Tab. 2: Spezielle Felder der Tabelle tblPersonen

    Alle Felddatentypen sind in der vorliegenden Musterlösung auf Text eingestellt, um für die zu erfassenden Angaben eine größtmögliche Flexibilität zu erlauben.

    Abb. 1: Die Tabelle tblPersonen in der Entwurfsansicht

    Die Tabelle tblFaehigkeiten

    Die Tabelle tblFaehigkeiten (s. Abb. 2) enthält neben dem Primärschlüsselfeld lediglich ein weiteres Textfeld zum Speichern von Fähigkeiten.

    Die Tabelle tblBewertungen

    Die Tabelle tblBewertungen (s. Abb. 3) enthält neben dem Primärschlüsselfeld und einem Textfeld zum Speichern der Bemerkungen noch das Sekundärschlüsselfeld FaehigkeitID. Die Bedeutung dieses Sekundärschlüsselfelds ist im Abschnitt Beziehungen erklärt.

    Abb. 2: Die Tabelle tblFaehigkeiten in der
    Entwurfsansicht

    Abb. 3: Die Tabelle tblBewertungen in der
    Entwurfsansicht

    Abb. 4: Die Tabelle tblPersonenUndFaehigkeiten in der Entwurfsansicht

    Die Tabelle
    tblPersonenUndFaehigkeiten

    Die Tabelle tblPersonenUndFaehigkeiten (s. Abb. 4) dient als Zwischentabelle zur Realisierung der benötigten n:m-Beziehungen. In Tab. 3 finden Sie eine Aufstellung der Tabellenfelder und eine zugehörige Beschreibung.

    Feld

    Beschreibung

    PersonUndFaehigkeitID

    Primärschlüsselfeld

    PersonID

    Sekundärschlüsselfeld zur Tabelle tblPersonen

    FaehigkeitID

    Sekundärschlüsselfeld zur Tabelle tblFaehigkeiten

    BewertungID

    Sekundärschlüsselfeld zur Tabelle tblBewertungen

    EindruckID

    Verknüpfungsfeld zur Erstellung der erweiterten Bewertungen

    Bemerkung

    Memo-Feld für Bemerkungen

    Tab. 3: Felder und Beschreibung der Tabelle tblPersonenUndFaehigkeiten

    Beim Feld BewertungID ist der Wert für die Eigenschaft Eingabe erforderlich auf den Wert Ja eingestellt, damit sichergestellt ist, dass bei der Datenerfassung jeder Fähigkeit auch eine Bewertung zugeordnet wird.

    Zusammengesetzten Index erstellen

    Bei der späteren Erfassung von Fähigkeiten und Bewertungen soll die mehrfache Zuordnung einer Fähigkeit zu einer Person nicht möglich sein.

    Dies kann beispielsweise durch die Erstellung eines zusammengesetzten Index für die Sekundärschlüsselfelder PersonID und FaehigkeitID in der Tabelle tblPersonenUndFaehigkeiten realisiert werden.

    Ausgangspunkt für die Erstellung eines zusammengesetzten Index ist die in der Entwurfsansicht geöffnete Tabelle.

  • Klicken Sie in der Symbolleiste auf das Symbol Indizes und öffnen Sie damit das Dialogfenster Indizes (s. Abb. 5).
  • Geben Sie in die erste leere Zeile der Spalte Indexname einen Namen für den Index ein, beispielsweise MultiIndex.
  • Wählen Sie dann in der Spalte Feldname das Feld PersonID aus, das als Erstes indiziert werden soll.
  • Stellen Sie im Bereich Indexeigenschaften den Wert für die Eigenschaft Eindeutig auf Ja ein.
  • Markieren Sie in der nächsten Zeile der Spalte Feldname das zweite Feld FaehigkeitID für den Index. Lassen Sie dabei die Spalte Indexname leer.
  • Schließen Sie das Dialogfenster Indizes mit einem Klick auf die Schaltfläche Schließen in der Titelleiste. (
  • Abb. 5: Das Dialogfenster Indizes

    Beziehungen

    Die Beziehungen der Musterlösungen sind wie bei Access gewohnt im Dialogfenster Beziehungen dargestellt (s. Abb. 6). Alle Beziehungen sind vom Beziehungstyp 1:n mit aktivierter referentieller Integrität.

    Die Kontrollkästchen Aktualisierungsweitergabe an verwandte Felder und Löschweitergabe an verwandte Datensätze sind bei allen Beziehungen deaktiviert.

    Abb. 6: Das Dialogfenster Beziehungen

    Die Forderung, jeder Fähigkeit beliebige Bewertungen zuordnen zu können, erfordert neben den beiden 1:n-Beziehungen zur Abbildung der n:m-Beziehung eine weitere Verknüpfung zwischen den Feldern FaehigkeitID in den Tabellen tblBewertungen und tblFaehigkeiten.

    Formulare zur Erfassung der Skill-Daten

    Zu den beiden zentralen Formularen der Musterlösungen zum Erfassen, Bearbeiten und Anzeigen von Daten zählen das Formular frmPersonen und das mit diesem Formular verbundene Unterformular frmSkillsSub. Diese beiden Formulare werden im Folgenden vorgestellt.

    Das Formular frmPersonen

    Das Formular frmPersonen (s. Abb. 7) basiert auf der Tabelle tblPersonen. Das Formular zeigt als Einzelformular die Stammdaten einer Person an und dient daneben zur Aufnahme des Unterformulars frmSkillsSub. Geschlossen wird das Formular mit einem Klick auf die Schaltfläche btnClose im Formularfuß, die die Ereignisprozedur aus Quellcode 1 ausführt.

    Auswahl von Datensätzen

    Jede Datenbankanwendung sollte die Möglichkeit bieten, schnell einen Datensatz als aktuellen Datensatz auszuwählen.

    Abb. 7: Das Formular frmPersonen

    Private Sub btnClose_Click()

        On Error Resume Next

        DoCmd.Close acForm, Me.Name

    End Sub

    Quellcode 1

    Private Sub btnAuswahl_Click()

        If Me!lstAuswahl.Visible Then

            Me!lstAuswahl.Visible = False

        Else

            DoCmd.RunCommand acCmdSaveRecord

            Me!lstAuswahl.Requery

            Me!lstAuswahl.Visible = True

        End If

    End Sub

    Quellcode 2

    In dieser Musterlösung wird das über ein unsichtbares Listenfeld bewerkstelligt, das über eine Schaltfläche sichtbar geschaltet wird.

    Diese Schaltfläche trägt die Beschriftung Auswahl. Nach einem Klick auf die Schaltfläche kann der Benutzer den gewünschten Datensatz auswählen. Daraufhin kann auch das Listenfeld wieder geschlossen werden.

    Doch was, wenn es sich der Anwender anders überlegt und gar nicht mehr zu einem anderen Datensatz wechseln will? In diesem Fall wird das Listenfeld durch einen zweiten Klick auf die Schaltfläche btnAuswahl wieder unsichtbar gemacht.

    Genau das leistet die Ereignisprozedur btnAuswahl_Click (s. Quellcode 2).

    Nach Prüfung der Sichtbarkeit der Auswahlliste speichert die Prozedur zunächst den aktuellen Datensatz, fragt mit der Requery-Methode die Datensatzherkunft des Listenfelds erneut ab und schaltet das Listenfeld wieder unsichtbar.

    Praxis-Tipp

    Achten Sie beim Erstellen Ihrer Ereignisprozeduren auf vermeintliche Nebensächlichkeiten wie das vorherige Speichern des aktuellen Datensatzes oder das erneute Abfragen einer Datensatzherkunft wie bei dem gerade gezeigten Beispiel. (

    Praxis-Tipp

    Ist die Auswahlliste beim Klick auf die Schaltfläche bereits sichtbar, hat es sich der Anwender anders überlegt und das Listenfeld kann direkt wieder unsichtbar geschaltet werden.

    Das Listenfeld lstSuchen

    Das Listenfeld lstSuchen ist als ungebundenes Listenfeld im Formular frmPersonen angeordnet (s. Abb. 8). Als Datensatzherkunft für das Listenfeld wird die SQL-Anweisung aus Quellcode 3 verwendet.

    Die notwendigen Eigenschaftseinstellungen für das Listenfeld lstSuchen für den hier vorgestellten Zweck entnehmen Sie Tab. 4.

    Abb. 8: Das Listenfeld im Formular in der Entwurfsansicht

    Abb. 9: Suche per Listenfeld

    SELECT tblPersonen.PersonID, tblPersonen.Nachname, 
    tblPersonen.Vorname, tblPersonen.Firma FROM tblPersonen 
    ORDER BY tblPersonen.Nachname, tblPersonen.Vorname;

    Quellcode 3

    Private Sub lstAuswahl_AfterUpdate()

        Dim rsObj As Object

        Set rsObj = Me.Recordset.Clone

        rsObj.FindFirst "[PersonID] = " _
            & Str(Me![lstAuswahl])

        Me.Bookmark = rsObj.Bookmark

    End Sub

    Quellcode 4

    Private Sub lstAuswahl_Click()

        Me!Vorname.SetFocus

        Me!lstAuswahl.Visible = False

    End Sub

    Quellcode 5

    Die Verknüpfung des Listenfelds zum Formular erfolgt über die PersonalID, deren Eigenschaft Spaltenbreite hier auf den Wert 0cm eingestellt ist.

    Eigenschaft

    Einstellung

    Spaltenanzahl

    4

    Spaltenüberschriften

    Ja

    Spaltenbreiten

    0cm;3cm;2,501cm;3cm

    Gebundene Spalte

    1

    Sichtbar

    Nein

    In Reihenfolge

    Nein

    Tab. 4: Eigenschaftseinstellungen für das Listenfeld lstSuchen

    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.