Erstellen einer dynamischen Abfrage mit Werten aus einem Suchformular in Access

Erweitert: Erfordert Expertenkenntnisse für Codierung, Interoperabilität und Mehrbenutzerfähigkeiten.

Dieser Artikel bezieht sich auf Microsoft Access-Datenbankdateien (.mdb) oder Microsoft Access-Datenbankdateien (.accdb), und auch auf Microsoft Access-Projektdateien (.adp).

Zusammenfassung

In diesem Artikel erfahren Sie, wie Sie dynamisch Kriterien für eine Abfragezeichenfolge mit Werten aus einem Suchformular in Microsoft Access erstellen.

Weitere Informationen

Manchmal möchten Sie möglicherweise ein Formular erstellen, das als Suchformular dient. Sie möchten Werte im Formular eingeben und dynamisch die entsprechende SQL-Zeichenfolge erstellen können. Die folgenden Schritte zeigen, wie Sie dynamisch eine Abfragezeichenfolge erstellen, die die BuildCriteria-Methode verwendet.

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionsfähigkeit sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Microsoft-Supporttechniker können ihnen helfen, die Funktionalität eines bestimmten Verfahrens zu erklären, aber sie werden diese Beispiele nicht ändern, um zusätzliche Funktionen bereitzustellen oder Verfahren zu erstellen, die Ihren spezifischen Anforderungen entsprechen. ACHTUNG: Wenn Sie die Schritte in diesem Beispiel ausführen, ändern Sie die Beispieldatenbank Northwind.mdb. Möglicherweise möchten Sie die Northwind.mdb-Datei sichern und die folgenden Schritte für eine Kopie der Datenbank ausführen.

Schritt-für-Schritt-Beispiel

  1. Starten Sie Den Zugriff.
  2. Zeigen Sie im Menü Hilfe auf Beispieldatenbanken, und klicken Sie dann auf Northwind-Beispieldatenbank.
  3. Öffnen Sie das Kundenformular in der Entwurfsansicht.
  4. Fügen Sie dem Formular eine Befehlsschaltfläche und ein Textfeld hinzu, und legen Sie dann die folgenden Eigenschaften fest:
 Command Button
 ------------------------
 Name: cmdSearch
 Caption: Search
 OnClick: Event Procedure

Text Box
 --------------
 Name: txtSQL
 Width: 4.4583"
 Height: 1.25"
  1. Legen Sie die OnClick-Eigenschaft der Befehlsschaltfläche auf die folgende Ereignisprozedur fest:
Private Sub cmdSearch_Click()
    On Error Resume Next

Dim ctl As Control
    Dim sSQL As String
    Dim sWhereClause As String

'Initialize the Where Clause variable.
    sWhereClause = " Where "

'Start the first part of the select statement.
    sSQL = "select * from customers "

'Loop through each control on the form to get its value.
    For Each ctl In Me.Controls
        With ctl
            'The only Control you are using is the text box.
            'However, you can add as many types of controls as you want.
            Select Case .ControlType
                Case acTextBox
                    .SetFocus
                    'This is the function that actually builds
                    'the clause.
                    If sWhereClause = " Where " Then
                        sWhereClause = sWhereClause & BuildCriteria(.Name, dbtext, .Text)
                    Else
                        sWhereClause = sWhereClause & " and " & BuildCriteria(.Name, dbtext, .Text)
                    End If
            End Select
        End With
    Next ctl

'Set the forms recordsource equal to the new
    'select statement.
    Me.txtSQL = sSQL & sWhereClause
    Me.RecordSource = sSQL & sWhereClause
    Me.Requery

End Sub

  1. Speichern Sie das Formular, und öffnen Sie es dann in der Formularansicht.

    Beachten Sie, dass beim Klicken auf die Befehlsschaltfläche Suchen im Textfeld txtSQL die Abfrage angezeigt wird, die anhand der Werte im Kundenformular erstellt wurde. Außerdem wurde das Kundenformular erneut abgewarteschlangen, sodass es die Ergebnisse der neuen SQL-Zeichenfolge widerspiegelt.

References

Wenn Sie weitere Informationen zur BuildCriteria-Methode benötigen, klicken Sie im Visual Basic-Editor im Menü Hilfe auf Microsoft Visual Basic-Hilfe, geben Sie buildcriteria-Methode im Office-Assistenten oder im Antwort-Assistenten ein, und klicken Sie dann auf Suchen, um das Thema anzuzeigen.