Direkt zum Hauptbereich

Search-as-you-type für Unterformulare in Microsoft Access

Oft möchte man den Anwender in einer Access-Anwendung aus der Liste eines Unterformulars einen Datensatz auswählen lassen. Wenn viele Datensätze angezeigt werden, ist das für den Anwender sehr unübersichtlich.

Das Problem lässt sich mit einer Search-as-you-type-Funktionalität (der Anwender kann einen Begriff eintippen, und es erscheinen nur noch die Einträge in der Auswahlliste, die diesen Begriff enthalten, noch während er tippt) sehr elegant lösen und lässt sich über MS Access folgendermassen implementieren:

Für das Beispiel nehmen wir an, dass wir ein Unterformular namens UF_Mitarbeiterauswahl haben, in dem für einen Mitarbeiter jeweils eine Personalnummer und ein Name (beides Strings) angezeigt werden, und der Anwender aus dieser Liste jeweils einen Eintrag auswählen können soll. Die Quelle ist die Tabelle Personal.

  • Man erweitert den Auswahldialog für den mit einem Texteingabefeld im Hauptformular (z. B. mit dem Namen Anzeigefilter)
  • Für das Ereignis “Bei Änderung” (Change) legen wir eine Prozedur an, welche dieRecordSource-Eigenschaft des Unterformulars entsprechend modifiziert:
Private Sub Anzeigefilter_Change()
    If Len(AnzeigeFilter.Text) > 1 Then
        Me.UF_Mitarbeiterauswahl.Form.RecordSource = "SELECT * FROM
        PERSONAL _WHERE Personalnummer LIKE _'*" & Anzeigefilter.Text & "*' OR Name
        LIKE '*" & Anzeigefilter.Text & "*'
    Else
        Me.UF_Mitarbeiterauswahl.Form.RecordSource = "SELECT * FROM            PERSONAL"
    EndIf
End Sub




#msaccess

Kommentare