ACC: How to Select Controls on Subforms with SetFocus Method

ID: Q113548


The information in this article applies to:


SUMMARY

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

You can use the SetFocus method for forms and form controls in Microsoft Access to select a field or control on an open form, form datasheet, table datasheet, or query dynaset, or to select other forms.

This article describes how to use the SetFocus method to select controls on subforms and nested subforms, and how to select controls on a main form from a control on a subform.


MORE INFORMATION

How to Select a Control on a Subform from a Main Form

To select a control on a subform from a main form, do the following:
  1. Select the subform control.


  2. Select the appropriate control on the subform.


The following example demonstrates how to select a control on a subform from a main form:
  1. Open the sample database Northwind.mdb (or NWIND.MDB in version 2.0).


  2. Create a new, blank form based on the Customers table.


  3. On the View menu, click Field List to display the field list. Drag the Company Name and City fields to the detail section of the form.


  4. Drag the Orders form from the Database window onto the detail section of the new form. Microsoft Access will embed the Orders form as a subform, linking the Orders form to the new form on the CustomerID field (or Customer ID in version 2.0). Note that the Orders form contains its own subform to show order details.


  5. Add a command button to the form with the following properties:
    
          Name: GotoFreight
          Caption: Freight
          OnClick: [Event Procedure] 

    Create the following code for the OnClick property's event procedure:
    
          ' Select the Orders subform control.
          Me![Orders].SetFocus
    
          ' Select the Freight control on the Orders subform.
          Me![Orders].Form![Freight].SetFocus 


  6. Save the new form with the name My Customer Orders.


  7. View the form in Form view, and then click the Freight button.


How to Select a Control on a Nested Subform from a Main Form

To select a control on a nested subform (a subform of a subform), do the following:
  1. Select the subform control.


  2. Select the nested subform control.


  3. Select the appropriate control on the nested subform.


The following example demonstrates how to select a control on a nested subform from a main form:
  1. Continuing the example above, add the following command button to the My Customer Orders form:
    
          Name: GotoQuantity
          Caption: Quantity
          OnClick: [Event Procedure] 

    Create the following code for the OnClick property's event procedure:
    
          ' Select the Orders subform control.
          Me![Orders].SetFocus
    
          ' Select the nested Orders Subform subform control.
          Me![Orders].Form![Orders Subform].SetFocus
    
          ' Select the Quantity field on the nested subform.
          Me![Orders].Form![Orders Subform].Form![Quantity].SetFocus 



  2. View the form in Form view, and then click the Quantity button.


How to Select a Control on a Main Form from a Subform

To select a control on a main form from a subform, do the following:
  1. Select the main form.


  2. Select the appropriate control on the main form.


The following example demonstrates how to select a control on a main form from a subform:
  1. Continuing the example above, open the Orders form in Design view. Add the following new command button to the form:
    
          Name: GotoCity
          Caption: City
          OnClick: [Event Procedure] 

    Create the following code for the OnClick property's event procedure:
    
          ' Select the main form.
          Forms![My Customer Orders].SetFocus
    
          ' Select the City control on the main form.
          Forms![My Customer Orders]![City].SetFocus 



  2. Save and then close the Orders form.


  3. Open the My Customer Orders form in Form view.


  4. Click the City button on the Orders subform.


How to Select a Control on a Subform from a Nested Subform

To select a control on a subform from a nested subform, do the following:
  1. Select the main form.


  2. Select the subform control.


  3. Select the appropriate control on the subform.


The following example demonstrates how to select a control on a subform from a nested subform:
  1. Continuing the example above, open the Orders Subform form in Design view.


  2. Modify the Discount field's OnExit property to be:
    
          OnExit: [Event Procedure] 

    Create the following code for the OnExit property's event procedure:
    
          ' Select the main form.
          Forms![My Customer Orders].SetFocus
    
          ' Select the Orders subform control.
          Forms![My Customer Orders]![Orders].SetFocus
    
          ' Select the Freight control on the Orders subform.
          Forms![My Customer Orders]![Orders].Form![Freight].SetFocus 



  3. Save and close the Orders Subform form.


  4. Open the My Customer Orders form in Form view. Use the mouse to select the Discount field in the nested Orders Subform subform. Press TAB to exit the Discount field.



REFERENCES

For more information about the SetFocus method, search the Help Index for "SetFocus," or ask the Microsoft Access 97 Office Assistant.


Keywords          : FmsOthr 
Version           : 2.0 7.0 97
Platform          : WINDOWS 
Issue type        : kbhowto 

Last Reviewed: April 3, 1999