Comment créer une requête dynamique avec des valeurs à partir d’un formulaire de recherche dans Access

Avancé : nécessite des compétences d’experts en codage, en interopérabilité et en multi-utilisateur.

Cet article s’applique à un fichier de base de données Microsoft Access (.mdb ou .accdb) et à un fichier de projet Microsoft Access (.adp).

Résumé

Cet article explique comment créer dynamiquement des critères pour une chaîne de requête avec des valeurs à partir d’un formulaire de recherche dans Microsoft Access.

Informations supplémentaires

Parfois, vous pouvez créer un formulaire qui sert de formulaire de recherche. Vous souhaitez pouvoir entrer des valeurs dans le formulaire et générer dynamiquement la chaîne SQL appropriée. Les étapes suivantes vous montrent comment générer dynamiquement une chaîne de requête qui utilise la méthode BuildCriteria.

Microsoft fournit des exemples de programmation à titre d’illustration uniquement, sans garantie expresse ou implicite. Cela inclut, sans y être limité, les garanties implicites de commercialisation et d’adaptation à un but en particulier. Cet article considère que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les ingénieurs du support technique Microsoft peuvent vous aider à expliquer les fonctionnalités d’une procédure particulière, mais ils ne modifient pas ces exemples pour fournir des fonctionnalités supplémentaires ou construire des procédures pour répondre à vos besoins spécifiques. ATTENTION : si vous suivez les étapes de cet exemple, vous modifiez l’exemple de base de données Northwind.mdb. Vous pouvez sauvegarder le fichier Northwind.mdb et suivre ces étapes sur une copie de la base de données.

Exemple pas à pas

  1. Démarrez Access.
  2. Dans le menu Aide , pointez sur Exemples de bases de données, puis cliquez sur Exemple de base de données Northwind.
  3. Ouvrez le formulaire Clients en mode Création.
  4. Ajoutez un bouton de commande et une zone de texte au formulaire, puis définissez les propriétés suivantes :
 Command Button
 ------------------------
 Name: cmdSearch
 Caption: Search
 OnClick: Event Procedure

Text Box
 --------------
 Name: txtSQL
 Width: 4.4583"
 Height: 1.25"
  1. Définissez la propriété OnClick du bouton de commande sur la procédure événementielle suivante :
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. Enregistrez le formulaire, puis ouvrez-le en mode Formulaire.

    Notez que lorsque vous cliquez sur le bouton de commande Rechercher , la zone de texte txtSQL reflète la requête créée à partir des valeurs du formulaire Clients. En outre, le formulaire Clients a été réexécuté afin qu’il reflète les résultats de la nouvelle chaîne SQL.

References

Pour plus d’informations sur la méthode BuildCriteria, dans le Rédacteur Visual Basic, cliquez sur Aide de Microsoft Visual Basic dans le menu Aide, tapez la méthode buildcriteria dans l’Assistant Office ou l’Assistant Réponse, puis cliquez sur Rechercher pour afficher la rubrique.