Lorsque vous parcourez du code VBA, vous pouvez constater que suivant les développeurs, les uns emploieront le point d’exclamation, d’autres le point, ou plus rarement un mélange de points d’exclamation et de points.
Origine du !
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")
Enfin beaucoup de classes de bibliothèques historiques peuvent utiliser le point d’exclamation comme dans l’exemple suivant avec DAO :
Dim rst as Dao.Recordset
Set rst = currentDb.OpenRecordset("SELECT monchamp, monchamp1 FROM table;", dbopensnapshot)
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.

Conclusion
Le point doit être privilégier dans la majorité des cas, cela peut devenir verbeux mais lors d’une relecture du code il apparait être plus clair.
Bonne utilisation !