[Fields Dialog]

Übersicht

Monday, May 1, 2000

Wiederverwendung von vorhandenen Objekten hat viele Vorzüge. Beispielsweise kann man auch in komplexen Access-Datenbanken mit wenigen Formularen auskommen, die ganz verschiedene Arten von Daten darstellen. Andererseits möchten es Sie vielleicht dem Benutzer ermöglichen, die angezeigten Daten selbst auszuwählen. Der hier vorgestellte Dialog stellt eine benutzerfreundliche Möglichkeit dar, Felder auszuwählen. Die zurückgegebene Auswahl können Sie auf beliebige Weise weiterverarbeiten.

Aufrufen des Dialogs

Der Dialog funktioniert so: Das Dialog-Formular wird geöffnet, wobei eine Datenquelle als Zeichenfolge übergeben wird. Aus dieser Datenquelle werden dann die Felder ausgewählt. Schließt der Benutzer den Dialog, stehen verschiedene Informationen über die ausgewählten Felder zur Verfügung.

    ' Datenquelle festlegen
    Dim strRecordsource As String 
    strRecordsource = "Interpreten"

    ' Dialog öffnen, Datenquelle übergeben
    DoCmd.OpenForm "Felder auswählen", , , , , acDialog, strRecordsource
    
    ' Benutzer wählt aus
    ' ...
    ' Schließen wird abgefangen, Dialog ausgeblendet

    ' Auswahl auswerten (1)
    Dim strSQL As String, qdf As QueryDef
    strSQL = [Form_Felder auswählen].FieldSQL
    Set qdf = CurrentDb.CreateQueryDef("Test", strSQL)
    DoCmd.OpenQuery "Test"

    ' Auswahl auswerten (2)
    MsgBox "Sie haben " & [Form_Felder auswählen].FieldCount & " Felder ausgewählt."

    ' Auswahl auswerten (3)
    Dim i As Integer
    For i = 1 to intFieldCount
        Debug.Print [Form_Felder auswählen].FieldsSelected(i)
    Next i

    ' Dialog schließen
    DoCmd.Close acForm, "Felder auswählen", acSaveNo

Die Eigenschaften im einzelnen

FieldCount As Integer
Eigenschaft ist schreibgeschützt.
Gibt die Anzahl der vom Benutzer ausgewählten Felder zurück.
FieldSQL As String
Eigenschaft ist schreibgeschützt.
Gibt eine Zeichenfolge zurück, die eine SQL-Select-Anweisung (Auswahlabfrage) darstellt. Die Anweisung enthält alle vom Benutzer ausgewählten Felder in der angegebenen Reihenfolge.
FieldsSelected(ByVal intIndex As Integer) As String
Eigenschaft ist schreibgeschützt.
Gibt den Namen eines beliebigen der ausgewählten Felder zurück. Die Felder befinden sich in der angegebenen Reihenfolge.
Argumente:
  • intIndex: Ganzzahl (Integer). Die Position des zurückzugebenen Feldes. Das erste Feld wird mit 1 zurückgegeben, das letzte mit einem Wert, der FieldCount entspricht. Ist das Argument außerhalb dieses Bereichs, wird eine leere Zeichenfolge zurückgegeben.

Interesse?

Schreiben Sie mir.