Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Benutzer per Kombinationsfeld auswhlen

Fr die Auswahl von Benutzern der Arbeitsgruppeninformationsdatei, an die die aktuelle Datenbank angeschlossen ist, gibt es mehrere Mglichkeiten. Neben denen, die eine temporre Tabelle oder eine dynamisch zusammengesetzte Wertliste verwenden, ist die mit einer Callback-Funktion wahrscheinlich die eleganteste.

Beispieldatenbank

Die Beispieldatenbank enthlt ein Formular namens frmBenutzer mit einem Kombinationsfeld zur Auswahl von Benutzern.

Erstellung eines Kombinationsfeldes zur Auswahl von Benutzern

Fr die Auswahl von Benutzern ist ein Kombinationsfeld eine sinnvolle Mglichkeit (siehe Abbildung 1).

Abbildung 1: Verwendung eines Kombinationsfeldes zur Auswahl von Benutzern

Fr manche Zwecke bieten sich auch Listenfelder an. Die Erstellung eine Listenfeldes mit Benutzern ist aber prinzipiell identisch mit der hier beschriebenen Vorgehensweise.

  1. Legen Sie ein neues Formular an.
  2. Fgen Sie dem Formular ein Kombinationsfeld namens cboBenutzer hinzu.
  3. Stellen Sie die Eigenschaft Herkunftsart auf den Ausdruck BenutzerErmitteln ein.

Der Ausdruck BenutzerErmitteln verweist auf die gleichnamige Funktion, die zum Fllen des Kombinationsfeldes verwendet wird. Bei der Funktion handelt es sich um eine sogenannte Callback-Funktion, die mehrere Male vom Kombinationsfeld aufgerufen wird, um die notwendigen Informationen zusammenzustellen.

Function BenutzerErmitteln(Feld As Control, ID As Variant, Zeile As Variant, Spalte As Variant, Code As Variant) As Variant

    Static i As Integer

    Dim Rueckgabewert As Variant

    Dim wrk As DAO.Workspace

    Set wrk = DBEngine.Workspaces(0)

    Select Case Code

        Case acLBInitialize

            i = wrk.Users.Count

            Rueckgabewert = i

        Case acLBOpen

            Rueckgabewert = Timer

        Case acLBGetRowCount

            Rueckgabewert = i

        Case acLBGetColumnCount

            Rueckgabewert = 1

        Case acLBGetColumnWidth

            Rueckgabewert = -1

        Case acLBGetValue

            Rueckgabewert = wrk.Users(Zeile).Name

        Case acLBGetFormat

        Case acLBEnd

    End Select

    BenutzerErmitteln = Rueckgabewert

End Function

Damit das Kombinationsfeld direkt beim ffnen des Formulars den ersten Eintrag der Datenherkunft anzeigt, legen Sie fr die Ereigniseigenschaft Beim ffnen des Formulars noch die folgende Prozedur an:

Private Sub Form_Current()

    Me.cboBenutzer = Me.cboBenutzer.ItemData(0)

End Sub

© 2003-2015 André Minhorst Alle Rechte vorbehalten.