Comment utiliser la technique de requête par formulaire (QBF) dans Microsoft Access
Numéro de la base de connaissances d’origine : 304428
Remarque
Vous devez disposer de connaissances de base en macro, codage et interopérabilité avant de commencer. Cet article sʼapplique uniquement à une base de données Microsoft Access (.accdb ou .mdb).
Résumé
Cet article explique comment utiliser un formulaire pour spécifier les critères d’une requête. Cette technique est appelée requête par formulaire (QBF).
Informations supplémentaires
Dans la technique QBF, vous créez un formulaire dans lequel vous entrez des critères de requête. Ce formulaire contient des zones de texte vides. Chaque zone de texte représente un champ dans une table que vous souhaitez interroger. Vous ne créez des entrées que dans les zones de texte pour lesquelles vous souhaitez spécifier des critères de recherche.
Le formulaire QBF ressemble à un formulaire de saisie de données qui contient des champs qui correspondent aux champs d’une table. Une table qui contient des champs nom, adresse, ville, état et code postal peut avoir un formulaire QBF qui contient des champs correspondants. Pour sélectionner certains enregistrements, vous pouvez entrer n’importe quelle combinaison de critères de recherche dans le formulaire. Vous pouvez spécifier une ville uniquement, une ville et un état, un code postal uniquement, ou toute autre combinaison. Les champs que vous laissez vides sont ignorés. Lorsque vous cliquez sur un bouton de commande dans le formulaire, Access exécute une requête qui utilise les critères de recherche de votre formulaire.
Pour utiliser la technique QBF, procédez comme suit :
Ouvrez l’exemple de base de données Northwind.mdb.
Créez un formulaire qui n’est basé sur aucune table ou requête, puis enregistrez-le en tant que QBF_Form.
Dans le nouveau formulaire, créez deux zones de texte et un bouton de commande qui a les propriétés suivantes. Ensuite, enregistrez le formulaire :
Text box 1 ------------------ Name: WhatCustomer Text box 2 ------------------ Name: WhatEmployee Command button 1: ------------------ Caption: Search OnClick: QBF_Macro
Créez la macro suivante, puis enregistrez-la sous QBF_Macro :
Action: OpenQuery Query Name: QBF_Query View: Datasheet Data Mode: Edit
Créez la requête suivante basée sur la table Orders, puis enregistrez-la sous QBF_Query :
Field: CustomerID Sort: Ascending Criteria: Forms![QBF_Form]![WhatCustomer] Or Forms![QBF_Form]![WhatCustomer] Is Null Field: EmployeeID Sort: Ascending Criteria: Forms![QBF_Form]![WhatEmployee] Or Forms![QBF_Form]![WhatEmployee] Is Null NOTE: When you type the criteria, make sure that you type the entire criteria in a single Criteria field; do not split the criteria by placing the 'Or' section on a separate row. Field: OrderID Field: OrderDate
Ouvrez QBF_Form dans l’affichage Formulaire. Entrez les combinaisons de critères suivantes. Cliquez sur Rechercher après chaque combinaison :
Customer ID Employee ID Result ------------------------------------------------------- <blank> <blank> All 830 orders AROUT <blank> 13 orders AROUT 4 4 AROUT orders for employee 4 <blank> 4 156 orders for employee 4
Après avoir consulté le jeu de résultats pour chaque requête, fermez la fenêtre Feuille de données. Ensuite, commencez votre recherche suivante. Chaque fois que vous cliquez sur le bouton Rechercher , les paramètres de la requête QBF filtrent les données en fonction des critères de recherche que vous avez spécifiés dans le formulaire de requête QBF.
Remarques sur les critères du paramètre QBF
L’exemple de requête QBF de cet article implémente des critères dans la requête en tant que
Formes! FormName ! Nom_contrôleOu Forms ! FormName ! Nom_contrôleEst Null
pour filtrer les données. Ces critères retournent tous les enregistrements correspondants. Si la valeur du critère est null, tous les enregistrements sont retournés pour le champ spécifié.
Vous pouvez spécifier l’un des autres critères suivants pour retourner des résultats légèrement différents.
Remarque
Dans l’exemple de critère suivant, un trait de soulignement (_) est utilisé comme caractère de continuation de ligne. Supprimez le trait de soulignement à la fin de la ligne lorsque vous recréez ces critères.
J’aime les formulaires ! FormName ! ControlName& « * » ou _ Forms ! FormName ! Nom_contrôleEst Null
Cette instruction de critère est identique à l’exemple QBF ci-dessus, sauf que vous pouvez interroger à l’aide d’un caractère générique. Par exemple, si vous entrez « Jo » dans un champ à l’aide de cette instruction de critère, la requête retourne chaque enregistrement du champ qui commence par « Jo ». Cela inclut Johnson, Jones, Johanna, etc.
Entre les formulaires ! FormName ! StartDate et forms ! FormName ! EndDate ou _ Forms ! FormName ! StartDate a la valeur Null
Vous pouvez utiliser cette instruction de critères pour interroger un champ de date à l’aide des zones de texte Date de début et Date de fin du formulaire de requête. Les enregistrements dont les dates de début et de fin se situent entre les valeurs que vous spécifiez dans le formulaire de requête sont retournés. Toutefois, si vous omettez une valeur Date de début dans le formulaire, la requête retourne tous les enregistrements, quelle que soit la valeur Date de fin.
J’aime les formulaires ! FormName ! ControlName& « * » ou a la valeur Null
Cette instruction de critères retourne à la fois les enregistrements qui correspondent aux critères et les enregistrements qui sont null. Si les critères sont null, tous les enregistrements sont retournés. Notez que l’astérisque (*) est considéré comme un paramètre, car il fait partie d’une expression Like plus grande. Étant donné que l’astérisque est une valeur de critère codée en dur (par exemple, « * »), les enregistrements avec des valeurs null sont retournés.
Like IIf(IsNull(Forms !FormName ! [ControlName]), _ « * »,[Forms] ! [FormName] ! [ControlName])
Cette instruction criteria retourne tous les enregistrements qui correspondent aux critères. Si aucun critère n’est spécifié dans le formulaire de requête, tous les enregistrements qui ne sont pas null sont retournés.
IIf(IsNull(Forms !FormName ! [ControlName]), _ [FieldName],[Forms] ! [FormName] ! [ControlName])
Cette opération retourne tous les enregistrements qui correspondent aux critères. Si aucun critère n’est spécifié dans le formulaire de requête, tous les enregistrements qui ne sont pas null sont retournés (le même résultat que dans l’exemple ci-dessus).
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