Zuletzt verwendete Datensätze anzeigen

Sie kennen sicherlich die Funktion aus dem Office-Ppaket, die Ihnen immer die letzten verwendeten Dokumente im Menü anbietet. Diese Funktionalität hat den charmanten Vorteil, dass Sie diese Dateien nicht in der Verzeichnisstruktur Ihrer Festplatte suchen müssen, sondern direkt darauf zugreifen können. Dieses Prinzip namens Most Recent Used (MRU) soll im nachfolgenden Programmierbeispiel für Kundendaten verwendet werden.

Das Fallbeispiel

In der Beispieldatenbank MRU2000.mdb finden Sie alle in diesem Artikel beschriebenen Objekte und Codierungen. Öffnen Sie in der Beispieldatenbank das Formular frmStammdaten, über das Sie Firmendaten verwalten können (s. Abb. 1). Links von den eigentlichen Daten befindet sich ein Listenfeld, in dem alle Datensätze angezeigt werden, die über Suchen ermittelt wurden oder an deren Stammdaten änderungen vorgenommen worden sind.

missing image file

Abb. 1: Verwaltungsformular für Unternehmensdaten

Geben Sie in das Textfeld Suchen einen beliebigen Suchbegriff für ein Unternehmen ein. Als Platzhalter für eine beliebige Zeichenkette kann das Sternchen (*) verwendet werden. Sobald Sie den zu suchenden Begriff eingegeben haben, bestätigen Sie den Eintrag mit der Eingabetaste und anschließend öffnet sich ein Dialog, in dem alle dem Suchmuster entsprechenden Unternehmen angezeigt werden (s. Abb. 2). Um zum gewünschten Datensatz zu navigieren, klicken Sie entweder doppelt auf den Namen im Listenfeld oder Sie markieren den Datensatz und bestätigen anschließend Ihre Auswahl mit Auswählen. Sobald der Dialog geschlossen wird und das aufrufende Formular zum ausgewählten Datensatz navigiert, erscheint der von Ihnen ausgewählte Datensatz in der Liste der zuletzt verwendeten Datensätze und Sie müssen nun nicht mehr mühsam über den Suchdialog zu diesem Datensatz navigieren.

missing image file

Abb. 2: Dem Suchkriterium entsprechende Datensätze

Eine weitere Möglichkeit der Übernahme eines Datensatzes in die MRU besteht darin, einen existierenden Datensatz zu ändern. Sobald die änderungen an einem Datensatz gespeichert wurden, wird dieser Datensatz ebenfalls in die MRU übernommen.

Technische Umsetzung

Um eine MRU zu programmieren, bedarf es nicht viel Aufwands. Auf Basis der Datenstruktur benötigen Sie zwei Tabellen zur Steuerung der MRU.

tblMRU

Die wichtigste Tabelle für die Speicherung der letzten Datensätze ist die Tabelle tblMRU. Ihre Aufgabe ist es, den Primärschlüssel der Unternehmensdaten nebst Datum des Eintrags zu speichern (s. Tab. 1).

Feld

Beschreibung

Tab. 1: Aufbau der Tabelle tblMRU

Sobald ein neuer Eintrag in der Tabelle vorgenommen wird, wird das Datum automatisch durch Access hinzugefügt.

tblMRUParameter

Die Tabelle tblMRUParameter dient der Verwaltung der Steuerungsvariablen für die Verwaltung der MRU. Auch diese Tabelle (s. Tab. 2) hat einen recht simplen Aufbau und speichert ausschließlich einen Parameternamen sowie einen Parameterwert.

Feld

Beschreibung

Tab. 2: Aufbau der Tabelle tblMRUParameter

Für das obige Beispiel benötigen Sie nur einen einzigen Parameter, der steuert, wie viele Einträge maximal in der MRU gespeichert werden sollen. Dazu dient der Parameter MAX_ENTRIES, der aktuell auf den Wert 25 festgelegt ist.

Es wäre auch möglich, ein Verfallsdatum zu verwenden, indem man die Tage angibt, nach denen ein Eintrag automatisch aus der MRU entfernt werden soll.

Eine Klasse für die Kapselung der Funktion

Die Funktionen der MRU sind in einer Klasse gekapselt, was so eine einfachere Verwaltung und Weiterentwicklung ermöglicht.

Die erste Grundüberlegung für die Funktion ist natürlich der Leistungsumfang. Sie müssen zunächst festlegen, was die Klasse alles leisten soll. Grundsätzlich müssen die Funktionen aus Tab. 3 erfüllt sein.

Funktionalität

Funktion

Tab. 3: Basisfunktionalität der MRU

Neben den oben aufgeführten öffentlich zugänglichen Methoden der Klasse werden natürlich auch Hilfsfunktionen benötigt, die Grundfunktionen der Klasse steuern (s. Tab. 4).

Funktionalität

Funktion

Tab. 4: Hilfsfunktionen der MRU

Aufbau der Klasse clsMRU

Die oben beschriebene Funktionalität ist in der Klasse clsMRU programmiert. Sie befindet sich in der Beispieldatenbank und kann durch einen Doppelklick im Visual Basis Editor angezeigt und bearbeitet werden.

Für die korrekte Arbeitsweise der Klasse werden Parameter eingesetzt. Damit diese Parameter nicht in jeder Funktion erneut abgerufen werden, speichert die Klasse die Parameterwerte in lokalen Variablen und Konstanten, die während des gesamten Lebenszyklus der Klasse zur Verfügung stehen. Es bietet sich also an, die Parameter für den Gebrauch gleich bei der Initialisierung der Datenklasse auszulesen und zu speichern.

Um Code gleich bei der Initialisierung einer Klasse ausführen zu lassen, verwenden Sie das Ereignis Initialize des Klassenobjektes. Es wird automatisch ausgeführt, sobald Sie auf Methoden und Eigenschaften einer Klasse zum ersten Mal zugreifen. In diesem Beispiel ist die Initialisierung nicht sehr aufwändig, da lediglich die lokale Variable lngNumOfEntries gefüllt wird. Sie speichert den Wert der maximal zu speichernden Einträge in die MRU:

Private Sub Class_Initialize()
    lngNumOfEntries = _
    GetParameterValue("MAX_ENTRIES")
    End Sub

Der Wert der Variablen wird durch die Funktion GetParameterValue gesetzt. Diese Funktion liest aus der Tabelle tblMRUParameter den Wert zum entsprechenden Parameterdatensatz aus.

Private Function GetParameterValue(strParameter _
    As String) As Variant
    ...
    Set cmd = New ADODB.Command
    With cmd
    Set .ActiveConnection = _
    CurrentProject.Connection
    .CommandText = SQL_MRU_PARAMETER
    .CommandType = adCmdText
    Set prm = .CreateParameter("Parameter", _
    adVarChar, adParamInput, _
    Len(strParameter) + 1, strParameter)
    .Parameters.Append prm
    Set rst = .Execute()
    End With
    If Not rst Is Nothing Then
        If Not rst.EOF And rst.BOF Then
            GetParameterValue = _
            rst.Fields(0).Value
        End If
    End If
    ...
End Function

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar