Il n’est pas possible de créer deux objets portant le même nom. Aussi avant de créer un objet, il est préférable de s’assurer qu’il n’existe pas déjà. ACCESS gère différentes natures d’objets : requête (Query), table (Table), formulaire (Form)… Le cas qui va être traité ici est celui des requêtes. L’exemple de code fourni ci-après est aisément adaptable à d’autres objets. Pour ce faire, il suffit, par exemple, de remplacer Query par Table pour tester l’existence d’une table.
En synthèse, le code source de la fonction ReqExiste ci-après renvoie « True » (vrai) si l’objet testé existe ou « False » (faux) dans le cas contraire.
'Cette fonction teste l’existence d’une requête nommée dans la variable strReq contenue dans la base de données nommée db Function ReqExiste(db As DAO.Database, ByVal strReq As String) As Boolean Dim req As DAO.QueryDef 'Parcourt toutes les requêtes de la base « db » For Each req In db.QueryDefs If req.Name = strReq Then 'La requête a été trouvée... ReqExiste = True Exit Function End If Next 'La requête n'existe pas... ReqExiste = False End Function
Quelques explications sur le code source :
La boucle compteur For Each… In… Next scrute toutes les requêtes (QueryDefs) de la base de données “db”.
Le nom de chacune des requêtes (req.Name) est comparé au nom à tester (strReq) à l’aide du test conditionnel If… Then… Else. Si le nom correspond (=), la fonction renvoie True (la requête existe) et le code s’arrête (Exit Function) ; dans le cas contraire, le code passe à la requête suivante (Next).
Si toutes les requêtes ont été passées en revue et qu’aucune ne correspond au nom recherché, la fonction renvoie False.
Approfondir le sujet : Maîtriser ACCESS / Maîtriser le langage VBA / Maîtriser le langage de requête SQL / Analyse de données
Derniers articles parBenoît RIVIERE (voir tous)
- Nouveautés de l’interpréteur de formules de calcul (v1.1) - dimanche 3 novembre 2024
- Dématérialisation de la facturation : nouvelles mentions obligatoires - lundi 28 octobre 2024
- Interpréteur de formules de calcul en Python - dimanche 13 octobre 2024
- Les données de la facturation électronique - mercredi 9 octobre 2024
- VBA/SQL vs Power Query : deux solutions complémentaires - mercredi 2 octobre 2024