ACC: Error Message Adding Record to Subform (123653)



The information in this article applies to:

  • Microsoft Access 1.0
  • Microsoft Access 1.1
  • Microsoft Access 2.0
  • Microsoft Access for Windows 95 7.0
  • Microsoft Access 97

This article was previously published under Q123653
Moderate: Requires basic macro, coding, and interoperability skills.

SYMPTOMS

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.

Modification Type:MajorLast Reviewed:5/6/2003
Keywords:kberrmsg kbprb kbusage KB123653