FIX: 'Unknown member' Error Loading Form

Last reviewed: February 20, 1997
Article ID: Q141805
The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, version 3.0b

SYMPTOMS

When attempting to run your form, you get the following error message:

   Error loading file - ControlSource - record number 4. Unknown
   member <member_name>.

CAUSE

You have an object on the form that has a ControlSource property that references an object that used to be on the form but was subsequently been deleted and replaced with a object of the same name as the deleted object.

WORKAROUND

  1. Select the object that has the incorrect reference, and delete it from the form.

  2. Save the form.

  3. Paste the object back onto the form.

These steps will change the object hierarchy reference, and your form should run as expected.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This problem has been fixed in Visual FoxPro 5.0 for Windows.

MORE INFORMATION

Form objects are added to the end of an .scx file. Because of this, property references are positionally dependent. In the following example, the text box object (object B) placed on the form references the Name property of the check box object (object A). When the form is run, the example works correctly.

Removing the text box object from the form and replacing it with an identical object that is still referenced by the text box object moves the position of the check box object from the beginning of the .scx file to a position after the text box.

Because of the way objects and property references are processed, when the form is run, you will get the noted error message. The new check box object that is placed on the form is written to the end of the file and is not available when required by the reference in the text box object.

Steps to Reproduce Problem

  1. In the Command window, type this command:

    CREATE FORM testform

  2. Place a check box on the form, and then place a text box on the form.

  3. For the text box, set the ControlSource property to:

    Thisform.Check1.Name

  4. Save and run the form. You will see the name of the check box object on the form ("Check box1").

  5. Modify the form, and select and delete the check box object.

  6. Place a new check box on the form, and run the form a second time. You will get the error message.


KBCategory: kbother kbbuglist kbfixlist
KBSubcategory: FxotherGeneral VFoxWin buglist3.00b fixlist5.00
Additional reference words: 3.00b uknown member load


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: February 20, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.