Partager via


SearchForRecord, action de macro

S’applique à : Access 2013, Office 2013

L’action RechercherEnregistrement permet de rechercher un enregistrement spécifique dans une table, une requête, un formulaire ou un état.

Setting

L’action RechercherEnregistrement accepte les arguments suivants.

Argument de l’action

Description

Type d’objet

Entrez ou sélectionnez le type d'objet de base de données dans lequel vous souhaitez effectuer votre recherche. Vous pouvez sélectionner Table, Requête, Formulaire ou État.

Nom de l'objet

Entrez ou sélectionnez l'objet spécifique qui contient l'enregistrement à rechercher. La liste déroulante affiche tous les objets de base de données du type sélectionné pour l'argument Type d'objet.

Enregistrement

Spécifiez le point de départ et la direction de la recherche.

Setting

Description

Previous

Recherche en arrière à partir de l'enregistrement actif.

Suivant

Recherche vers l'avant à partir de l'enregistrement actif.

Premier

Recherche vers l'avant à partir du premier enregistrement. Il s'agit de la valeur par défaut pour cet argument.

Dernier

Recherche en arrière à partir du dernier enregistrement.

Condition Where

Entrez les critères de recherche en utilisant la même syntaxe que celle d’une clause SQL WHERE, sans le mot « WHERE ». Par exemple,

'Description = « Beverages"'

Pour créer un critère qui comprend une valeur dans une zone de texte d'un formulaire, vous devez créer une expression qui concatène la première partie du critère avec le nom de la zone de texte contenant la valeur à rechercher. Par exemple, le critère suivant recherche le champ Description de la valeur dans la zone de texte txtDescription du formulaire frmCategories. Notez le signe égal (=) au début de l’expression et l’utilisation de guillemets simples (') pour encadrer la référence à la zone de texte :

'="Description = ' " & Forms ! [frmCategories] ! [txtDescription] & « '"'

Remarques

  • Lorsque plusieurs enregistrements correspondent aux critères dans l’argument Condition Where, les facteurs suivants déterminent l’enregistrement trouvé :

    • La définition de l’argument RecordVoir la table dans la section Paramètres pour plus d’informations sur l’argument Record.

    • L’ordre de tri des enregistrements Par exemple, si l’argument Record est défini sur First, le fait de changer l’ordre de tri des enregistrements peut permettre de trouver un autre enregistrement.

  • Vous devez ouvrir l'objet spécifié dans l'argument Nom de l'objet avant d'exécuter cette action. Sinon, une erreur se produit.

  • Si les critères de l'argument Condition Where ne sont pas remplis, aucune erreur ne se produit et le focus reste sur l'enregistrement actif.

  • Si vous recherchez l'enregistrement suivant ou précédent, la recherche s'arrête lorsqu'elle atteint la fin des données. Si aucun autre enregistrement ne correspond aux critères, aucune erreur ne se produit et le focus reste sur l'enregistrement actif. Pour confirmer qu'un enregistrement a été trouvé, entrez une condition pour l'action suivante, en faisant en sorte que la condition soit la même que les critères de l'argument Condition Where.

  • Pour exécuter l'action RechercherEnregistrement dans un module VBA, utilisez la méthode RechercherEnregistrement de l'objet DoCmd.

  • L'action RechercherEnregistrement est similaire à l'action TrouverEnregistrement, à la différence près que RechercherEnregistrement comporte des fonctionnalités de recherche plus puissantes. L'action RechercherEnregistrement est essentiellement destinée à la recherche de chaînes et elle reproduit la fonctionnalité de la boîte de dialogue Rechercher. L'action RechercherEnregistrement utilise des critères similaires à ceux d'un filtre ou d'une requête SQL. La liste ci-après illustre certaines opérations que vous pouvez effectuer à l'aide de l'action RechercherEnregistrement:

    • Vous pouvez utiliser des critères complexes dans l'argument Condition Where, tels que :

      Description = "Beverages" and CategoryID = 11

    • Vous pouvez faire référence à des champs qui se trouvent dans la source d'enregistrement d'un formulaire ou d'un état mais qui n'apparaissent pas dans le formulaire ou l'état. Dans l’exemple précédent, ni Description ni CategoryID ne doivent apparaître dans le formulaire ou l’état pour que les critères fonctionnent.

    • Vous pouvez utiliser des opérateurs logiques, tels que <, >, ET, OU et ENTRE. L’action TrouverEnregistrement ne produit que des résultats qui sont égaux à, commencent par ou contiennent la chaîne recherchée.

Exemple

La macro suivante ouvre d'abord la table Catégories en utilisant l'action OuvrirTable. Elle utilise ensuite l’action RechercherEnregistrement pour rechercher le premier enregistrement dans la table pour lequel le champ Description correspond à « Boissons ».

Action

Arguments

OpenTable

Nom de la table :Categories View : DatasheetMode de données : Modifier

SearchForRecord

Type d’objet : TableNom de l’objet : CategoriesRecord : FirstWhere Condition : Description = « Beverages »