Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Dans les bases de données Access de bureau, vous pouvez utiliser la fonction RechercheDlookup pour obtenir la valeur d’un champ particulier à partir d’un jeu d’enregistrements spécifié (une domaine ). Utilisez la fonction RechercheD dans un module Visual Basic pour Applications (VBA), une macro, une expression de requête ou une contrôle calculé dans un formulaire ou un état.

Remarque : Cet article ne s’applique pas aux applications web Access.

Vous pouvez utiliser la fonction RechercheDlookup pour afficher la valeur d’un champ qui ne se place pas dans la source d’enregistrement de votre formulaire ou état. Par exemple, supposons que vous avez un formulaire basé sur une table Détails commande. Le formulaire affiche les champs OrderID, ProductID, UnitPrice, Quantity et Discount. Toutefois, le champ ProductName se trouve dans une autre table, la table Produits. Vous pouvez utiliser la fonction RechercheDlookup dans un contrôle calculé pour afficher productName sur le même formulaire.

Syntaxe

DLookup( expr, domain [ ,criteria] )

La syntaxe de la fonction RechercheDlookup présente les arguments suivantes :

Argument

Description

expr

Obligatoire. Expression qui identifie le champ dont vous souhaitez renvoyer la valeur. Il peut s' expression de chaîne d’identifier un champ dans une table ou une requête, ou il peut s’agit d’une expression qui effectue un calcul sur les données de ce champ. Dans Expr,vous pouvez inclure le nom d’un champ dans une table, un contrôle dans un formulaire, une constante ou une fonction. Si expr inclut une fonction, elle peut être intégrée ou définie par l’utilisateur, mais pas une autre agrégation de domaine ou SQL fonction d’agrégation.

domaine

Obligatoire. Expression de chaîne identifiant l’ensemble d’enregistrements qui constitue le domaine. Il peut s’agit d’un nom de table ou de requête pour une requête qui ne nécessite pas de paramètre.

critère

Facultatif. Expression de chaîne utilisée pour limiter la plage de données sur laquelle la fonction RechercheD est exécutée. Par exemple, les critères sont souvent équivalents à la clause WHERE dans une expression SQL, sans le mot WHERE. Si critère est omis, la fonction RechercheDlookup évalue expr par rapport au domaine entier. Tout champ inclus dans les critères doit également être un champ dans le domaine; Sinon, la fonction Relookup renvoie la valeur Null.

Remarques

La fonction RechercheDlookup renvoie une valeur de champ unique en fonction des informations spécifiées dans les critères. Bien que l’argument critère soit facultatif, si vous ne fournissez pas de valeur pour les critères, la fonction RechercheD renvoie une valeur aléatoire dans le domaine.

Si aucun enregistrement ne répond aux critères ousi le domaine ne contient aucun enregistrement, la fonction RechercheD renvoie la valeur Null.

Si plusieurs champs répondent à des critères,la fonction RechercheDes renvoie la première occurrence. Vous devez spécifier des critères qui garantit que la valeur du champ renvoyée par la fonction RechercheD est unique. Vous pouvez utiliser une valeur clé primaire pour vos critères, par exemple, [EmployeeID] dans l’exemple suivant, pour vous assurer que la fonction RechercheDlookup renvoie une valeur unique :

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")

Que vous utilisez la fonction RechercheD dans une macro ou un module, une expression de requête ou un contrôle calculé, vous devez créer l’argument critères avec soin pour vous assurer qu’il sera évalué correctement.

Vous pouvez utiliser la fonction RechercheDlookup pour spécifier des critères dans la ligne Critères d’une requête, dans une expression de champ calculé dans une requête ou dans la ligne Mise à jour d’une requête Mise à jour.

Vous pouvez également utiliser la fonction RechercheD dans une expression dans un contrôle calculé sur un formulaire ou un état si le champ que vous devez afficher ne se trouve pas dans la source d’enregistrement sur laquelle votre formulaire ou état est basé. Par exemple, supposons que vous avez un formulaire Détails de la commande basé sur une table Détails commande avec une zone de texte appelée ProductID qui affiche le champ ProductID. Pour rechercher ProductName dans une table Produits en fonction de la valeur de la zone de texte, vous pouvez créer une autre zone de texte et définir sa propriété Source Contrôle sur l’expression suivante :

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

Conseils

  • Bien que vous pouvez utiliser la fonction RechercheD pour afficher une valeur d’un champ dans une table étrangère, il peut être plus efficace de créer une requête qui contient les champs dont vous avez besoin dans les deux tables, puis de baser votre formulaire ou état sur cette requête.

  • Vous pouvez également utiliser l’Assistant Recherche pour rechercher des valeurs dans une table étrangère.

Remarque : Les modifications apportées sans enregistrement à des enregistrements dans un domaine ne sont pas incluses lorsque vous utilisez cette fonction. Si vous souhaitez que la fonction RECHERCHED soit basée sur les valeurs modifiées, vous devez tout d’abord enregistrer les modifications en cliquant sur Enregistrer l’enregistrement sous Enregistrements sous l’onglet Données, en déplaçant le focus vers un autre enregistrement ou en utilisant la méthode de mise à jour.

Exemple

Remarque : Les exemples qui suivent illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’travail avec VBA, sélectionnez Référence du développeur dans la liste de listes en regard de Rechercher, puis entrez un ou plusieurs termes dans la zone de recherche.

L’exemple suivant renvoie des informations de nom à partir du champ CompanyName des critères satisfaisants d’enregistrement. Le domaine est une table Expéditeurs. L’argument critères limite le jeu d’enregistrements résultant à ceux pour lesquels ShipperID est égal à 1.

Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")

L’exemple suivant de la table Shippers utilise le contrôle de formulaire ShipperID pour fournir des critères pour la fonction RechercheD. Notez que la référence au contrôle n’est pas incluse dans les guillemets qui désignent les chaînes. Ainsi, chaque fois que la fonction RechercheD est appelée, Access obtient la valeur actuelle du contrôle.

Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)

L’exemple suivant utilise une variable, intSearch, pour obtenir la valeur.

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)

Besoin d’aide ?

Développez vos compétences

Découvrez des formations >

Accédez aux nouvelles fonctionnalités en avant-première

REJOINDRE MICROSOFT 365 INSIDERS >

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions de vos commentaires.

×