Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

15.8 Benutzerdefinierte Auflistungen mit dem Collection-Objekt

15.8.1 Auflistungen selbst gemacht

Ein Beispiel für die Verwendung des Collection-Objekts ist eine Auflistung zum Speichern globaler Variablen. Globale Variablen sind generell anfällig, da sie leicht aus Versehen geändert werden können. Ein wenig sicherer ist die Verwendung einer öffentlichen Auflistung. Das folgende Listing zeigt den Inhalt des Moduls mdlGlobal, das eine öffentliche Auflistung namens colVariablen deklariert und zwei Routinen zum Setzen und zum Lesen von Variablen bietet:

Option Compare Database
Option Explicit

Public colVariablen As VBA.Collection

Public Sub SetVariable(strVariable As String, strWert As Variant)

    If colVariablen Is Nothing Then
        Set colVariablen = New VBA.Collection
    End If

    On Error Resume Next

    'Variable hinzufügen
    colVariablen.Add strWert, strVariable

    'Variable ist bereits vorhanden
    If Err.Number = 457 Then
        'Element löschen ...
        colVariablen.Remove (strVariable)
        '... und neu hinzufügen
        colVariablen.Add strWert, strVariable
    End If

End Sub

Public Function GetVariable(strVariable As String) As Variant

    On Error Resume Next

    'Variable ermitteln
    GetVariable = colVariablen(strVariable)

    'Falls nicht vorhanden, Fehlermeldung ausgeben
    If Err.Number <> 0 Then
        MsgBox "Variable mit diesem Namen nicht vorhanden!", vbCritical
    End If

End Function

Public Sub DeleteVariable(strVariable As String)
    On Error Resume Next
    colVariablen.Remove strVariable
End Sub

Public Function CountVariables()

    On Error Resume Next

    CountVariables = colVariablen.count

    If Err = 91 Then
        CountVariables = 0
    End If

End Function

Listing 15.27: Beispiel für die Anwendung des Collection-Objekts

Hinzufügen von öffentlichen Variablen

Die Routine SetVariable erwartet zwei Parameter: den Namen der Variablen und den zu speichernden Wert. Folgender Aufruf würde etwa eine Variable namens Datenbankpfad und als Wert den Pfad der aktuellen Datenbank als Listeneintrag speichern:

SetVariable "Datenbankpfad", CurrentProject.Parent

Die Prozedur verwendet die Add-Methode des Collection-Objekts, um das Wertepaar hinzuzufügen.

Abfragen von öffentlichen Variablen

Mit der Funktion GetVariable fragen Sie einen bestehenden Wert ab. Dabei verwendet die Funktion den Variablennamen als Schlüssel des Collection-Objekts und ermittelt so den gewünschten Wert:

Debug.Print GetVariable("Datenbankpfad")

Löschen von öffentlichen Variablen

Für die Entfernung von Einträgen aus einem Collection-Objekt ist die Remove-Methode zuständig. Sie erwartet den Index des zu entfernenden Eintrags. Ein Beispielaufruf lautet wie folgt:

DeleteVariable "Datenbankpfad"

Anzahl gespeicherter Variablen

Auch die Anzahl der Elemente einer Auflistung lässt sich ermitteln. Dazu dient die Count-Eigenschaft des Collection-Objekts.

Nächster Abschnitt:

15.8.2 Benutzerdefinierte Auflistungsklassen

© 2006-2008 André Minhorst Alle Rechte vorbehalten.