ACC: Filtering Form with OpenForm Action Causes "#Name?" Error

ID: Q102670


The information in this article applies to:


SYMPTOMS

Novice: Requires knowledge of the user interface on single-user computers.

A form that is opened with an OpenForm action that specifies a query for the Filter Name argument, may display a "#Name?" error message for some controls.


CAUSE

When a query is specified as the filter for the OpenForm action, the form is bound to the fields in the query. If the form contains controls bound to fields that are not included in the query, those controls display the "#Name?" error message.


RESOLUTION

Switch to Design view and either change the query so that it contains all the fields used in the form or clear the Restrict Available Fields check box.


MORE INFORMATION

A similar behavior may occur with a report that is filtered by a query that does not contain all the same fields. The report gives parameter prompts for all fields not included in the query.

Steps to Reproduce Behavior


  1. In the sample database NWIND.MDB, create a query called Filter Customers By Letter A based on the Customers table. Set the properties as follows:
    
          Query: Filter Customers By Letter A
          -----------------------------------
          Type: Select Query
    
          Field: Customer ID
             Table: Customers
             Criteria: Like "a*" 


  2. On the View menu, click properties to verify that the Output All Fields property is set to No (or Restrict Available Fields check box in version 1.x is checked).


  3. Create the following macro and call it Open Filtered Customers:
    
          Macro Name                Action
          ----------------------------------
          Open Filtered Customers   OpenForm
    
          Open Filtered Customers Actions
          -------------------------------
          OpenForm
             Form Name: Customers
             Filter Name: Filter Customers By Letter A 


  4. Run the macro. Note that all the controls in the Customer form, except for [Customer ID], display the "#Name?" error message.



WORKAROUND


  1. Open the Filter Customers By Letter A query in Design view.


  2. On the View menu, click Properties. Set the Output All Fields property to Yes (or clear the Restrict Available Fields check box in version 1.x).


  3. Choose OK and save the query. Note that the form now displays the correct values for all controls.



STATUS

This behavior no longer occurs in Microsoft Access version 7.0.


REFERENCES

Microsoft Access "User's Guide," versions 1.0 and 1.1, pages 532-534, 558

Additional query words: poundname


Keywords          : kbusage McrArg 
Version           : 1.0 1.1 2.0
Platform          : WINDOWS 
Issue type        : kbprb 

Last Reviewed: March 25, 1999