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
- Démarrez Access.
- Dans le menu Aide , pointez sur Exemples de bases de données, puis cliquez sur Exemple de base de données Northwind.
- Ouvrez le formulaire Clients en mode Création.
- 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"
- 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
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.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour