Lorsque vous parcourez du code VBA, vous pouvez constater que suivant les développeurs, les uns emploieront le point d’exclamation et le point, tandis que d’autres ne feront usage que du point.
Origine
Le ! est l’héritage de Access Basic (Access 1.1). Dans VBA on peut encore utiliser quelques instructions Access Basic, uniquement avec les objets survivants de cette époque. Les formulaires et états en sont le plus bel exemple.
L’exemple le plus courant étant celui-ci :
forms!monformulaire
Comportement du !
Ce que l’on sait moins c’est le que le point d’exclamation remplace le membre par défaut. On peut facilement le vérifier au travers de quelques instructions habituelles.
forms!monformulaire!prenom
dont l’équivalent et la signification n’est pas :
forms.monformulaire.controls("prenom")
mais plutôt :
forms.monformulaire.recordset.fields("prenom")
Il faut donc être extrêmement vigilant avec l’utilisation de point d’exclamation. Ms ACCESS a suffisamment de faux amis pour ne pas en provoquer.
Une dernière syntaxe :
Dim rst as Dao.Recordset
Set rst = currentDb.OpenRecordset(...)
rst!monchamp
Que l’on traduira par :
rst.fields("monchamp")
Il faut donc être extrêmement vigilant avec l’utilisation de point d’exclamation. Ms ACCESS a suffisamment de faux amis pour ne pas en provoquer.
Le point et ses avantages
Même si utiliser le point implique un code plus verbeux, ce qui n’est pas forcément une mauvaise chose, le point a l’avantage d’être précis et surtout de mettre l’auto complétion à disposition du développeur.
Rien que cet avantage devrait encourager les néophytes à l’employer.
Si vous êtes un mordu du « ! » ou que votre touche « point » n’est pas disponible, vous pouvez toujours regarder dans l’explorateur d’objets de VBE (touche F2) pour connaître le membre par défaut d’un objet ou d’une classe. Il est symbolisé par une pastille bleu et sa description est suffisamment claire.