DLookup, fonction

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

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

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

Vous pouvez utiliser la fonction DLookup pour afficher la valeur d'un champ qui ne figure pas dans la source d'enregistrement de votre formulaire ou état. Par exemple, supposons que vous disposez d'un formulaire basé sur une table Détails commande. L'écran affiche les champs OrderID, ProductID, UnitPrice, quantité et la remise. Toutefois, le champ ProductName est dans une autre table, la table produits. Vous pouvez utiliser la fonction DLookup dans un contrôle calculé pour afficher le champ ProductName sur le même formulaire.

Syntaxe

DLookup ( expr, domaine [critères] )

La syntaxe de la fonction DLookup comprend les arguments suivants :

Argument

description

expr

Obligatoire. Expression qui identifie le champ dont vous voulez renvoyer la valeur. Il peut être un expression de chaîne identifiant un champ dans une table ou requête, ou elle peut être 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 sur 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 sur un autre domaine agrégation ou fonction d'agrégation SQL.

domaine

Obligatoire. Une expression de chaîne identifiant le jeu d'enregistrements qui constituent le domaine. Il peut être un nom de table ou un nom de requête pour une requête qui ne nécessite pas un paramètre.

critères

Facultatif. Expression de chaîne utilisée pour limiter la plage de données à partir de laquelle la fonction DLookup est exécutée. Par exemple, critères est souvent équivalent à la clause WHERE dans une expression SQL, sans le mot où. Si l'argument critères est omis, la fonction DLookup évalue expr par rapport à l'intégralité du domaine. N'importe quel champ qui est inclus dans les critères doit également être un champ de domaine; dans le cas contraire, la fonction DLookup renvoie une Null.

Remarques

La fonction DLookup renvoie une valeur de champ unique basée sur les informations spécifiées dans les critères. Bien que les critères est un argument facultatif, si vous ne spécifiez pas une valeur pour les critères, la fonction DLookup renvoie une valeur aléatoire dans le domaine.

Si aucun enregistrement ne répond aux critères ou si domaine ne contient aucun enregistrement, la fonction DLookup renvoie la valeur Null.

Si plusieurs champs répond aux critères, la fonction DLookup renvoie la première occurrence. Vous devez spécifier des critères afin de garantir que la valeur du champ renvoyée par la fonction DLookup est unique. Vous souhaitiez utiliser une valeur clé primaire vos critères, tels que [EmployeeID] dans l'exemple suivant, pour vous assurer que la fonction DLookup renvoie une valeur unique :

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

Si vous utilisez la fonction DLookup dans une macro ou module, une expression de requête ou un contrôle calculé, vous devez construire l'argument critère avec soin pour vous assurer qu'il soit évalué correctement.

Vous pouvez utiliser la fonction DLookup 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 dans un requête Mise à jour.

Vous pouvez également utiliser la fonction DLookup dans une expression dans un contrôle calculé sur un formulaire ou un état si le champ que vous devez afficher ne figure pas dans la source d'enregistrement sur lequel repose le formulaire ou l'état. Par exemple, supposons que vous disposez d'un formulaire Détails de la commande basé sur une table Détails commande avec une zone de texte ProductID affiche le champ Réf produit. Pour rechercher ProductName dans une table de produits basée sur la valeur dans la zone de texte, vous pouvez créer une autre zone de texte et définissez sa propriété SourceContrôle à l'expression suivante :

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

Conseils

  • Bien que vous pouvez utiliser la fonction DLookup pour afficher la 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 des deux tables, puis de baser votre formulaire ou état sur cette requête.

  • Vous pouvez également utiliser l'Assistant liste de choix pour rechercher des valeurs dans une table étrangère.

Remarque : Les modifications non enregistrées dans des enregistrements de domaine ne sont pas incluses lorsque vous utilisez cette fonction. Si vous souhaitez que la fonction DLookup soit basée sur les valeurs modifiées, vous devez tout d'abord enregistrer les modifications en cliquant sur Sauvegarder enregistrement sous enregistrements sous l'onglet données , déplacer le focus vers un autre enregistrement, ou en utilisant la méthode de mise à jour .

Exemple

Remarque : Exemples suivants illustrent l'utilisation de cette fonction dans une Visual Basic pour le module d'Applications (VBA). Pour plus d'informations sur l'utilisation de VBA, sélectionnez Référence du développeur dans la liste déroulante en regard de recherche et entrez un ou plusieurs termes dans la zone de recherche.

L'exemple suivant retourne le nom à partir du champ NomSociété de l'enregistrement répondant aux critères. Le domaine est une table expéditeurs. L'argument critère limite le jeu d'enregistrements à ceux pour lesquels n° messager est égal à 1.

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

L'exemple suivant à partir de la table expéditeurs utilise le contrôle de formulaire n° messager pour fournir des critères à la fonction DLookup . Notez que la référence au contrôle n'est pas incluse dans les guillemets qui indiquent les chaînes. Cela garantit que chaque fois que la fonction DLookup est appelée, Access obtenir 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)

Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×