Microsoft KB Archive/197949

= ACC2000: Previous/ActiveControl Name Property Not in Auto List =

Article ID: 197949

Article Last Modified on 10/11/2006

-

APPLIES TO


 * Microsoft Access 2000 Standard Edition

-



This article was previously published under Q197949



Moderate: Requires basic macro, coding, and interoperability skills.



SYMPTOMS
You can use the ActiveControl property together with the Screen object to identify or refer to the control that has the focus. However, if you type Screen.ActiveControl or Screen.PreviousControl in a module or the Immediate window to view the properties that you can apply from the Auto List Members list, the Name property does not appear on the list.



RESOLUTION
To refer to the Name property of the Screen.ActiveControl or Screen.PreviousControl, you should create a variable and assign the name of the control to that variable. For example, the following sample piece of code is one way you could refer to the active control's name: Dim ctlCurrentControl As Control Set ctlCurrentControl = Screen.ActiveControl If ctlCurrentControl.Name = "txtCustomerID" Then ' Do this. ElseIf ctlCurrentControl.Name = "btnCustomerDetails" Then ' Do this. End If NOTE: Code that refers to Screen.ActiveControl or Screen.ActiveForm does not work correctly when called from the Immediate window because the Immediate window has the focus at that time. If no control has the focus when you use the Screen.ActiveControl property, or if all of the active form's controls are hidden or disabled, a run-time error occurs.



Steps to Reproduce Behavior
 Open a new database and create a new module.  Type the following procedure in the module: Dim CControl as Control Set CControl = Screen.ActiveControl. Note that the Name property does not appear in the Auto List Members list. 

