Microsoft KB Archive/175216

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

Article ID: 175216

Article Last Modified on 1/22/2007

-

APPLIES TO


 * Microsoft Access 97 Standard Edition

-



This article was previously published under Q175216



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 Debug 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

WARNING: Code that refers to Screen.ActiveControl or Screen.ActiveForm will not work correctly when called from the Debug window because the Debug 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 will occur. Use the Me object instead of the ActiveControl property in Event procedures.



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. 

