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…)’ »