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 4/2002.

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

Kombinations- und Listenfelder füllen

Autor: André Minhorst, Duisburg

Normalerweise sollte das Füllen von Kombinations- und Listenfeldern keine großartigen Probleme bereiten. Sie können dies einfach durch Zuweisen einer Datensatzherkunft wie einer Tabelle oder Abfrage, einer Wertliste oder einer Feldliste erledigen. Manchmal müssen Sie allerdings auf eine eher weniger bekannte Methode zurückgreifen: die Verwendung einer Funktion als Herkunftsart.

Wenn Sie eine Tabelle oder Abfrage mit den anzuzeigenden Daten verwenden können, bereiten Kombinations- und Listenfelder keine Probleme. Ebenso verhält es sich, wenn Sie eine kleine Menge statischer Daten haben und diese dem Steuerelement in Form einer Wertliste
übergeben.

Kritisch wird es, wenn die Daten weder in Tabellen- noch in Abfrageform vorliegen und die Datenmenge zu groß ist, um die Bedingungen für den Einsatz einer Wertliste zu erfüllen - denn hier gibt es leider eine Beschränkung bezüglich der Zeichenzahl.

Ein solcher Fall tritt z. B. im Beitrag Dateien verwalten mit Access in der Ausgabe 4/2002 von Access im Unternehmen auf. Dort sollen Listenfelder dazu verwendet werden, um Verzeichnisse und Dateien anzuzeigen.

Function <Funktionsname>(Feld As Control, _
    ID As Variant, Zeile As Variant, _
    Spalte As Variant, Code As Variant) As Variant

    'Deklarationsteil

    Select Case Code

        Case acLBInitialize     'Initialisieren

        Case acLBOpen           'Öffnen.

        Case acLBGetRowCount    'Zeilen lesen

        Case acLBGetColumnCount 'Spalten lesen

        Case acLBGetColumnWidth 'Spaltenbreite abrufen.

        Case acLBGetValue       'Daten lesen.

        Case acGetFormat        'Festlegen des Formats

        Case acLBEnd            'Ende 

    End Select

End Function

Quellcode 1

Die Verwendung einer Wertliste scheint prädestiniert für diese Aufgabe, doch wenn Sie einmal die Verzeichnisse mit Ihrem Windows Explorer durchsehen, stellen Sie fest, dass 2048 Zeichen schnell verbraucht sind.

Eine andere Alternative wäre das Anlegen einer temporären Tabelle. Wenn Sie diese Tabelle allerdings oft verwenden, bläht sich die Datenbank sehr schnell auf und erfordert regelmäßiges Komprimieren.

Daher bleibt als letzte Möglichkeit die Verwendung einer Funktion als Herkunftsart des Listenfeldes. Sie haben sich nicht verlesen: Die Funktion wird tatsächlich als Herkunftsart und nicht als Datensatzherkunft eingetragen.

Grundlagen

Die Funktionen zum Füllen von Kombinations- und Listenfeldern heißen Callback-Funktionen. Access ruft eine solche Funktion immer mehrmals hintereinander mit unterschiedlichen Parametern auf. Daher muss die Callback-Funktion ein bestimmtes Format haben. In Quellcode 1 finden Sie das Grundgerüst einer Callback-Funktion.

Abb. 1: Beispiele für Listenfelder ohne Datensatzherkunft

Bereits im Aufruf finden Sie einige Parameter, die möglicherweise die Frage aufwerfen, wie sie zu füllen sind. Die Antwort ist einfach: Access übernimmt die Zuweisung der entsprechenden Werte. Sie müssen nur den Funktionsnamen für die Eigenschaft Herkunftsart des Kombinations- oder Listenfeldes eintragen.

Access ruft dann die Funktion unterschiedlich oft mit den verschiedenen Werten für den Parameter Code auf.

Mit der Select Case-Anweisung ermittelt die Funktion dann, welcher Schritt als nächster auszuführen ist. Alles Weitere lässt sich am besten an Hand eines Beispiels erläutern.

Anwendung von Callback-Funktionen

Die Funktionsweise von Callback-Funktionen soll an Hand eines Listenfeldes erläutert werden, das mit den Dateien eines bestimmten Verzeichnisses gefüllt werden soll (s. Abb. 1).

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:

Verwandte Beiträge:

Listenfeld und Details in einem Formular

Zugriff auf Daten in Formularen und Steuerelementen

© 2003-2015 André Minhorst Alle Rechte vorbehalten.