To resolve this problem, obtain Microsoft Office 2000 Service Release 1/1a (SR-1/SR-1a).
To obtain SR-1/SR-1a, click the article number below to view the article in the Microsoft Knowledge Base:
245025�
OFF2000: How to Obtain and Install Microsoft Office 2000 Service Release 1/1a (SR-1/SR-1a)
To temporarily work around this problem, do the following, depending on what your situation is:
- If Access is not responding, follow these steps, depending on which operating system you have.
For Microsoft Windows 95 or Microsoft Windows 98
- Press CTRL+ALT+DEL.
- Click Microsoft Access and click End Task.
- When the confirmation dialog box appears, click End Task again.
For Microsoft Windows NT 4.0 or Microsoft Windows 2000
- Press CTRL+ALT+DEL.
- Click Task Manager.
- On the Applications tab, click Microsoft Access, and then click End Task.
- When the confirmation dialog box appears, click End Task again.
- To prevent this problem from happening again, use one of the following methods:
Method 1
Comment out the code in the Current event of the subform.
NOTE: When you use this method, the second subform does not automatically update to show the records that are related to the selected record in the first subform.
Method 2
Create a variable that contains True or False. When you delete a record from the subform set this variable to True. In the Current event of the first subform check the variable; if it contains True, do not re-query the second subform. Finally, set the variable to False. The following steps show you how to do this.
- Open the subform that caused Access to hang in Design view.
- On the View menu, click Code.
- Type the following line in the Declarations section:
Dim boolDelete As Boolean
- Add the following code to the Delete event of the subform:
Private Sub Form_Delete(Cancel As Integer)
' Set the module level variable to True to
' indicate a delete.
boolDelete = True
End Sub
- Change the Current event of the subform to the following procedure:
Sub Form_Current()
On Error Resume Next
If Err <> 0 Then
GoTo Form_Current_Exit
Else
On Error GoTo Form_Current_Err
If boolDelete = False Then
' Only Requery the secondary subform in the Current
' event if no delete has taken place.
Me.Parent![Order Details Subform].Requery
End If
End If
Form_Current_Exit:
Exit Sub
Form_Current_Err:
MsgBox Error$
Resume Form_Current_Exit
End Sub
- Add the following code to the AfterDelConfirm event of the subform:
Private Sub Form_AfterDelConfirm(Status As Integer)
' Once the delete is finished, Requery the secondary
' subform, then set the module level variable back
' to False in indicate that no delete has taken place.
Me.Parent![Order Details Subform].Requery
boolDelete = False
End Sub