ACC: Error Message Adding Record to Subform

Last reviewed: May 7, 1997
Article ID: Q123653
The information in this article applies to:
  • Microsoft Access versions 1.0, 1.1, 2.0, 7.0, 97

SYMPTOMS

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

When you try to add a new record to a subform, you receive the following error message:

   In Microsoft Access 97:

      An error occurred while referencing the object. You tried to run a
      Visual Basic procedure that improperly references a property or
      method of an object.

   In Microsoft Access 7.0:

      An error occurred while referencing the OLE Automation object. You
      tried to run a Visual Basic procedure that improperly references a
      property or method of an OLE Automation object.

   In Microsoft Access 1.x or 2.0:

      Can't set value.

CAUSE

This error can occur if the subform's LinkChildFields property contains the name of a form property.

RESOLUTION

Change the name contained in the subform's LinkChildFields property and the name of the associated field in the underlying table to something other than the name of a form property.

MORE INFORMATION

When you add a record to a linked subform, Microsoft Access sets the value from the field on the main form specified in the subform's LinkMasterFields property to the field on the subform specified in the subform's LinkChildFields property. If the field specified in the LinkChildFields property is the name of a form property, Microsoft Access tries to set the value of that property for the form instead of the field. Note that this behavior is normal, and the values will therefore update normally after displaying the error.

Steps to Reproduce Behavior

  1. Start Microsoft Access and create a new database.

  2. Create the following two tables:

          Table Name: OneSideTable
          ------------------------
          Field Name: AName
          Data Type: Text
    

          Set the AName field as the primary key for the OneSideTable table.
    

          Table Name: ManySideTable
          -------------------------
          Field Name: Num
          Data Type: Number
          Field Name: Parent
          Data Type: Text
    

    Note that Parent is the name of a form property.

  3. Create a one-to-many relationship between the OneSideTable table and the ManySideTable table using the OneSideTable table as the primary table. Join the AName field with the Parent field to create the relationship. Enforce referential integrity.

  4. Use the Form Wizard to create a main form and subform. Use the OneSideTable table for the main form, and the ManySideTable table for the subform.

  5. Open the main form in Form view and then try to add a record to the subform. You receive the error message stated above. Once you click OK you can add the new record.

REFERENCES

For more information about the LinkChildFields and LinkMasterFields properties, search the Help Index for "LinkChildFields," or ask the Microsoft Access 97 Office Assistant.


Additional query words: setvalue
Keywords : FmsSubf kberrmsg kbusage
Version : 1.0 1.1 2.0 7.0 97
Platform : WINDOWS
Hardware : X86
Issue type : kbprb
Resolution Type : Info_Provided


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: May 7, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.