Bonjour et bienvenue dans ce nouvel article. Aujourd’hui nous allons parler de la fonction « Dlookup ».

Dans un premier temps à quoi sert cette fonction… ?

La fonction « Dlookup » permet de retourner la valeur d’un champ d’un enregistrement dans une table selon un ou plusieurs critères. Cette fonction est une alternative aux requêtes.

Comment utiliser cette fonction… ?

Voici la syntaxe brute de la fonction :

Dlookup (expr,domaine,[critère])

  • Le premier champ correspond à l’expression cherchée,
  • Le deuxième champ correspond à la table de référence,
  • Le dernier champ correspond aux critères de recherche.

Je vais vous donner un exemple concret pour illustrer mes propos. Prenons la table suivante :

Imaginons que vous cherchiez le prénom de quelqu’un en n’ayant comme donnée uniquement son nom. La fonction « Dlookup » va vous permettre de récupérer le prénom de la personne grâce à son nom avec le code suivant :

Sub Recup_prenom()

Dim prenom As String

prenom = DLookup(« Prénom », « test », « nom = «  »LICHE » » »)   

End Sub

Dans le premier champ de la fonction je référence le champ je cherche. Je renseigne ensuite la table dans laquelle je recherche ma donnée et enfin le critère.

Dans cet exemple, la variable prenom prend comme valeur « Gilles ».

Je vais vous donner un deuxième exemple pour vous montrer la recherche avec deux critères.

Nous reprenons la même table mais cette fois-ci nous voulons récupérer l’ID de la personne à partir de son nom et prénom :

Sub Recup_prenom()

Dim ID As Integer

    ID = DLookup(« ID », « Test », « nom = «  »ALY » » AND prénom = «  »Luc » » »)   

End Sub

Vous avez s’en doute remarquer que dans ma fonction les caractères des types texte comme le nom et le prénom sont encadrés de doubles guillemets. Ces doubles guillemets sont obligatoires en cas d’utilisation de caractère de type texte.

Attention cependant à la fonction « Dlookup », elle n’est pas magique !

En effet, si je modifie légèrement la table précédente comme ceci, la fonction Dlookup ne pourra être utilisé :

Vous l’aurez bien compris, la fonction ne peut être utilisée dans le cas ou la table contient des données identiques. Si j’utilise le même code que précédemment, la fonction ne me retournera que l’ID le plus proche du début de la table.

Dans ce cas présent, il faudra utiliser les recordsets que nous verrons dans un prochain article.

Merci à tous d’être arrivés jusqu’ici, je reviens vers vous avec un nouvel article le mois prochain. En attendant portez-vous bien !