Skills mit Access verwalten

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

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.

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 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 (siehe Bild 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.

    Bild 1: Die Tabelle tblPersonen in der Entwurfsansicht

    Die Tabelle tblFaehigkeiten

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

    Die Tabelle tblBewertungen

    Die Tabelle tblBewertungen (siehe Bild 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.

    Bild 2: Die Tabelle tblFaehigkeiten in derEntwurfsansicht

    Bild 3: Die Tabelle tblBewertungen in derEntwurfsansicht

    Bild 4: Die Tabelle tblPersonenUndFaehigkeiten in der Entwurfsansicht

    Die Tabelle tblPersonenUndFaehigkeiten

    Die Tabelle tblPersonenUndFaehigkeiten (siehe Bild 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 (siehe Bild 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. (
  • Bild 5: Das Dialogfenster Indizes

    Beziehungen

    Die Beziehungen der Musterlösungen sind wie bei Access gewohnt im Dialogfenster Beziehungen dargestellt (siehe Bild 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.

    Bild 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.

    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 (siehe Bild 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.

    Bild 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 (siehe Bild 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.

    Bild 8: Das Listenfeld im Formular in der Entwurfsansicht

    Bild 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

    Funktionalität der Suche

    Die Funktionalität der Suche basiert auf den beiden Eigenschaften Nach Aktualisierung und Beim Klicken des Listenfelds mit den entsprechenden Ereignisprozeduren.

    Nach der Auswahl des gewünschten Datensatzes im Listenfeld (siehe Bild 9) wird mit Hilfe der FindFirst-Methode und der Bookmark-Eigenschaft die PersonID des Listenfelds im Formular frmPersonen gesucht:

    Das Ereignis Beim Klicken des Listenfelds setzt dann noch den Fokus auf ein anderes Steuerelement im Formular und schaltet das Listenfeld wieder unsichtbar (s. Quellcode 4).

    Das Kombinationsfeld Quelle

    Das Kombinationsfeld Quelle dient der Erfassung der Herkunft eines Personenkontakts.

    Der Einfachheit halber besitzt dieses Kombinationsfeld als Herkunftstyp den Eintrag Wertliste und als Datensatzherkunft eine Werteliste mit den entsprechenden Angaben (siehe Bild 10). Die Werteliste lässt sich an dieser Stelle bei Bedarf auch bequem aktualisieren.

    Abb. 10 Das Eigenschaftsfenster der Kombinationsfelds Quelle

    Das Unterformular frmSkillsSub

    Bild 11: Das Formular frmSkillsSub

    Private Sub CboFaehigkeit_NotInList(NewData As _    String, Response As Integer)
        If MsgBox("Diese Fähigkeit ist neu. Möchten Sie " _        &"sie anlegen", vbYesNo) = vbYes Then
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Set db = CurrentDb
        Set rs = db.OpenRecordset("tblFaehigkeiten", _        DB_OPEN_DYNASET)
            rs.AddNew
            rs!Faehigkeit = NewData
            rs.Update
            Response = acDataErrAdded
            rs.Close
            Set rs = Nothing
            Set db = Nothing
        Else
            Response = acDataErrContinue
            CboFaehigkeit.Undo
        End If
    End Sub

    Quellcode 6

    Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

    Testzugang

    eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

    diesen und alle anderen Artikel mit dem Jahresabo

    Schreibe einen Kommentar