ACC2: "Invalid Reference" Saving Record on Form with Button
ID: Q123858
|
The information in this article applies to:
SYMPTOMS
Moderate: Requires basic macro, coding, and interoperability skills.
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:
- Choose the Control Wizards button in the toolbox (the button should
appear sunken).
- Add a command button to the form.
- In the Categories box, select Record Operations. In the When Button
Is Pressed box, select Save Record. Choose the Next button.
- Choose the Next button, then choose the Finish button.
- Set the form's BeforeUpdate property to the following event procedure:
Sub Form_BeforeUpdate (Cancel As Integer)
Cancel = True
End Sub
- View the form in Form view and enter any text in the text box.
- Choose the command button to save the record. You receive the error
message stated above.
Keywords : kberrmsg kbusage FmsProb
Version : 2.0
Platform : WINDOWS
Issue type : kbbug