Bang Notation and Dot Notation in VBA and MS-Access

Nitrodist picture Nitrodist · May 27, 2010 · Viewed 22.1k times · Source

While perusing an application that I'm documenting, I've run across some examples of bang notation in accessing object properties/methods, etc. and in other places they use dot notation for what seems like the same purpose.

Is there a difference or preference to using one or the other? Some simple googling only reveals limited information on the subject with some people actually using it in opposite cases. Perhaps there is a coding standards section from MS somewhere that indicates the method of madness?

Answer

Joshua Honig picture Joshua Honig · Apr 11, 2013

Despite the (formerly) accepted answer to this question, the bang is not in fact a member or collection access operator. It does one simple and specific thing: The bang operator provides late-bound access to the default member of an object, by passing the literal name following the bang operator as a string argument to that default member.

That's it. The object doesn't have to be a collection. It doesn't have to have a method or property called Item. All it needs is a Property Get or Function which can accept a string as the first argument.

For much more detail and proof, see my blog post discussing this: The Bang! (Exclamation Operator) in VBA