My thoughts? Well, I use neither dot nor bang notation when referencing controls in VBA, so I wouldn't know what to say ;-)
Microsoft isn't consistant, heres the example from the help topic for the Parent property (to name one), where dot is used to reference form controls.
Example
The following example uses the Parent property to examine the parent of the Speedy Label label control, the Speedy check box control, and the ShipVia option group. To run this example, open the Orders form in the Northwind sample database then run this code.
[tt]Public Sub ShowParent()
Dim frm As Form
Dim ctl As Control
Set frm = Forms!Orders
Set ctl =
frm.[Speedy Label]
' Returns name of control attached to label.
MsgBox "The parent control is " & ctl.Parent.Name
Set ctl =
frm.Speedy
' Returns name of control containing control.
MsgBox "The parent control is " & ctl.Parent.Name
Set ctl =
frm.ShipVia
' Returns name of form containing option group control.
MsgBox "The parent control is " & ctl.Parent.Name
End Sub[/tt]
"Bolding" by me.
My point is "
The downsides of using the dot? You may run into trouble if your control or field has the same name as one of the built-in properties of a form -- so don't do that!"
Dot vs bang should be mostly interchangeable in form coding, except for the property/control clash, and when you change recordsource dynamically (in code), where the dot notation might/will fail. Since the dot notation is evaluated at compile time, any non existing controls, will give compile errors.
Personally, I find it somewhat peculiar that Microsoft uses dot notation in the documentation without any warning about under which circumstances it will fail.
Sometimes you'll find Access apps with a lot of invisible controls stuck into a corner - which is a workaround used by "dotters" with too much dislike of the bang notation ;-)
On the reserved words - I was under the impression that the "More information" paragraph from the link of of reserved words in Access 2002 and Access 2003, indicated that functions, methods and properties of existing (and added objects/libraries) also fall into the reserved word category?
"
Because it is not practical to provide a list of all reserved words, such as built-in function names or Microsoft Access user-defined names, please check your product documentation for additional reserved words. Note that if you set a reference to a type library, an object library, or an ActiveX control, that library's reserved words are also reserved words in your database. For example, if you add an ActiveX control to a form, a reference is set, and the names of the objects, methods, and properties of that control become reserved words in your database"
Also, what most developers would recommend, is using a naming convention where one renames every control that one reference through code or expressions, so that
1 - there's no clash with existing properties, at least if you're a "dotter" ;-)
2 - the control name differs from the name of the controlsource (the name of the field it's bound to)
This will usually mean prefixing text controls with txt, combos with cbo, command buttons cmd, listboxes lst...
Roy-Vidar