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)
- Bases d’information publiques utiles à l’évaluation de l’intégrité des tiers (guide de l’AFA) - dimanche 19 mars 2023
- Excel : Obtenir les distances et temps de parcours d’un trajet Google Maps - samedi 18 mars 2023
- Evaluation de biens immobiliers : le prix de l’immobilier en France - samedi 11 mars 2023
- Règlement ANC n° 2022-06 relatif à la modernisation des états financiers : 5ème partie – Impact sur le calcul de la VA CVAE et sur celui de la RSP - dimanche 5 mars 2023
- Lazarus : afficher les caractères accentués (mode console) - mardi 28 février 2023