Microsoft KB Archive/123858

= ACC2: "Invalid Reference" Saving Record on Form with Button =

Article ID: 123858

Article Last Modified on 7/5/2002

-

APPLIES TO


 * Microsoft Access 2.0 Standard Edition

-



This article was previously published under Q123858



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



SYMPTOMS
When you try to save a record by choosing a command button on a form that runs a DoMenuItem action, you receive the following error message:

Invalid reference to field 'Form_BeforeUpdate'



CAUSE
The Cancel argument is being set in the form's BeforeUpdate event procedure.



RESOLUTION
There are two ways to work around this problem. The first method traps and handles the error, and the second cancels the event in a different manner.

Method 1
You can work around the problem by trapping and handling the error message. When you execute the DoMenuItem action to save the record, trap for error 2465 and replace it with a more descriptive error message. For example, you could attach the following sample Access Basic code to the command button:

Sub Button1_Click On Error GoTo Err_Button1_Click DoCmd DoMenuItem A_FORMBAR, A_FILE, A_SAVERECORD,, A_MENU_VER20 Exit_Button1_Click: Exit Sub Err_Button1_Click: Select Case Err Case 2465 MsgBox "Descriptive error message of your choice here" Case Else MsgBox Error$ End Select Resume Exit_Button1_Click End Sub

Method 2
In step 5 of the example in the "Steps to Reproduce Problem" section below, use

  DoCmd CancelEvent

instead of:

  Cancel = True



STATUS
Microsoft has confirmed this to be a problem in Microsoft Access version 2.0. This problem no longer occurs in Microsoft Access version 7.0.



MORE INFORMATION
The problem described above usually results in the error message "Invalid reference to 'Form_BeforeUpdate'," but may also result in the error message "Invalid reference to field 'Button0_Click'."

This problem can also occur if you call a macro instead of code in the BeforeUpdate property. The only method of saving a record that works as you expect is choosing Save Record from the File menu.

Steps to Reproduce Problem
 Start Microsoft Access and open the sample database NWIND.MDB. Create a new form based on the Employees table. Set the form's DefaultView property to Single Form. Add a text box control to the form. Set the text box's ControlSource property to First Name. Create a Save Record button using the Command Button Wizard. To create this button, follow these steps:

<ol style="list-style-type: lower-alpha;"> Choose the Control Wizards button in the toolbox (the button should appear sunken).</li> Add a command button to the form.</li> In the Categories box, select Record Operations. In the When Button Is Pressed box, select Save Record. Choose the Next button.</li> Choose the Next button, then choose the Finish button.</li></ol> </li>  Set the form's BeforeUpdate property to the following event procedure:

Sub Form_BeforeUpdate (Cancel As Integer) Cancel = True End Sub </li> View the form in Form view and enter any text in the text box.</li> Choose the command button to save the record. You receive the error message stated above.</li></ol>

Keywords: kberrmsg kbbug kbusage KB123858

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.