Bonjour et bien venu dans un nouvel article sous Access.

Aujourd’hui dans ce nouvel article, nous allons voir la création d’une fonction ainsi que son utilisation dans une requête.

Access dispose d’un vaste catalogue de fonction mais il peut arriver, dans des cas bien particulier, que vous ne trouviez pas exactement la fonction souhaitée.

Dans ce cas-là, vous pouvez avoir recours à la création de votre propre fonction.

Création de la fonction personnalisée

Dans un premier temps, vous devez définir votre besoin pour concevoir au mieux votre fonction. Je vous invite vivement à vous documenter en amont pour être certain qu’une fonction native à Access n’existe pas déjà.

Une fois le besoin identifié, vous pouvez vous lancer dans la conception de votre fonction.

Pour notre exemple du jour, nous allons partir sur une gestion de produit.
Dans une première table, nous avons une liste d’article avec des informations associées à cet article. Dans une seconde table, nous avons une liste de photos correspondant aux articles.

Laisser-moi imager mes propos :

formulaire de connexion deuxieme partie

Figure 1 – Table des articles

fonction personnalisé microsoft access

Figure 2 – Tables des photos

Le but de la fonction que nous allons créer est de récupérer tous les noms des photos et de les concaténer.

Voici la fonction :

Function Concat(NumArticle As String) As String

    Dim Xsql As String

    Dim RS As Recordset

   

    Xsql = « SELECT T01_02_Photos.* FROM T01_02_Photos WHERE NumArticle = » » » & NumArticle & «  » » »

   

    Set RS = CurrentDb.OpenRecordset(Xsql)

   

    Do While RS.EOF = False

        Concat = Concat & RS![Photo] & « , »

        RS.MoveNext

    Loop

   

    Set RS = Nothing

    If Concat <> «  » Then Concat = Left(Concat, Len(Concat) – 1)

End Function

Intégration dans une requête

Maintenant nous allons intégrer cette fonction à un requête.

Pour cela, nous allons créer une nouvelle requête, y ajouter nos deux tables et ouvrir le générateur d’expression :

fonction personnalisé microsoft access

Comme en vba, il suffit d’appeler notre fonction par le nom que nous lui avons donné précédemment :

fonction personnalisé microsoft access

Voici le résultat de la requête une fois exécuté :

fonction personnalisé microsoft access

Les noms des photos ont été correctement concaténés dans une seule et même colonne.

Attention cependant, pour des requêtes lourdes, la création d’une fonction personnalisée peut alourdir le temps de traitement.

Faite donc attention lors de vos créations de requête.

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

Si besoin, nous proposons des offres de formationd’expertise, de développement et d’assistance sur Microsoft Access.

Nous travaillons sur toute la Suite Office, retrouvez nos prestations sur notre site Rétinium !

N’hésitez pas à contacter nos Experts !