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
Continue reading ‘MS/ACCESS, VBA : tester l’existence d’un objet (requête, table…)’ »