Bookmark bug.

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

After Installing OfficeXP sp3 i am now getting a lot of errors 3021. It started after the SP3 install i found this site that had the problem on Office before http://www.mvps.org/access/bugs/bugs0012.ht
But it seems that SP3 bring the problem back...
Any ideas out there. Or should i roll back to OFFICE XP SP2
Thank
BB
 
Can you provide further detail please:
1. What symptoms are you seeing that lead you to believe this bug has
resurfaced?

2. What is the RecordSource of the form when you see the issue? How many
records? Table in same mdb? Attached Access table? ODBC table?

3. Locate msaccess.exe. Right-click and choose properties. What is the
version?

4. Locate msjet40.dll. Right-click and choose properties. What is the
version? What folders of your hard drive contain this file?


We have not seen reports on the bug being re-triggered in A2002-SP3. Current
status AFAIK is:

- The bug still exists in Access 97 SR2 with large RecordSources (hundreds
of thousands of records), and Form_AfterUpdate and Form_AfterInsert still
report the wrong record information.

- The bug resurfaced in Access 2000, but was addressed:
http://support.microsoft.com/?id=238134

- Remnants of the bug remain in all versions, e.g. while editing a new
record, Access reports a spurious bookmark (that of the most recent record).

More information:
http://allenbrowne.com/bug-04.html

--
Allen Browne - Microsoft MVP. Perth, Western Australia.

Reply to group, rather than allenbrowne at mvps dot org.

BB said:
After Installing OfficeXP sp3 i am now getting a lot of errors 3021. It
started after the SP3 install i found this site that had the problem on
Office before http://www.mvps.org/access/bugs/bugs0012.htm
 
1) After Deleting records and refresh form -error" record not found" err.number 3021, is being captured by my error trap
Many other examples of what is happening are the same as the link provided abov
2) Record Source is a Query , Database is Split and FE is MDE. Access 2002 BE on server shared location is MDB
3) Access is Office XP 200
4) Ms Jet 4.0 Sp8
work around as on link does work. But i have uninstalled officeXp then reinstalled officeXp up to SP2. Errors are not being triggere
Thank
BB
 
Okay, so you are not seeing the wrong record being edited.
You are experiencing Error 3021 after you "delete records and refresh".

The fact that the error does not occur in the same code in A2002 SP2 does
suggest that it is behaving differently.

If you would like further assistance, please list the code and indicate
which line is generating the error. (Temporarily disabling your
error-handler should identify the line that errors.)

--
Allen Browne - Microsoft MVP. Perth, Western Australia.

Reply to group, rather than allenbrowne at mvps dot org.

BB said:
1) After Deleting records and refresh form -error" record not found"
err.number 3021, is being captured by my error trap.
Many other examples of what is happening are the same as the link provided above
2) Record Source is a Query , Database is Split and FE is MDE. Access 2002
BE on server shared location is MDB.
3) Access is Office XP 2002
4) Ms Jet 4.0 Sp8.
work around as on link does work. But i have uninstalled officeXp then
reinstalled officeXp up to SP2. Errors are not being triggered
 
Okay i've removed all error trapping and rem out any code to display err.description / err.number
Now no problem. I get no error , no problem
But why
The error appeared if i enable
On error goto Err_Cod
but rem it and poof no problem right?
 
Presumably this is not just a matter of forgetting "Exit Sub" above the
error handling, as that would report error zero.

Possibly this was a corruption, so that editing (which decompiles the
module) fixed it?
 
I also ran into this bug!

Tested with Access2002 SP3 and Access2002 Runtime SP3 on Windows XP,
2000 and 98 with Jet4.0 SP8 (german versions).

Steps to reproduce the bug:

1. create a new MDB-database
2. create a new table with a primary key column and one data column
3. insert some records into this table
4. create a bound form for the table
5. create a button to delete a record with following code:
Private Sub Befehl4_Click()
DoCmd.RunCommand acCmdDeleteRecord
End Sub

If I click on that button and cancel that delete operation with clicking
no on the delete confirm message I get the runtime error "3021 No
current record" instead of the runtime error "2501 The RunCommand
action was canceled..." as in previous access versions.

If I delete the last record in the form I get the runtime error "3021
No current record" after I confirm the delete with yes. Older versions
of access don't show an runtime error in that case.

There are other related bugs in froms with subforms if you delete a
record in the master form.

So it seems that some sort of bookmark-book has resurfaced in Access2002
SP3 :-(

Andreas
 
Hi Andreas, and thank you for posting the steps.
I am able to repro. the error by following your steps.

As you say, error 2501 is the expected message to notify you that a delete
was cancelled. The fact that A2002 SP3 generates error 3021 suggests that it
is confused about which record is current at the time the delete transaction
is cancelled.

While that behaviour is incorrect and inconsistent with other versions, it
is not the infamous Bookmark Bug. For example, there is no evidence of
Access reporting the wrong record in Form_AfterUpdate (as A97 still does
even with SP2), let alone of writing the wrong record.

If you trace the events, Access does this:
1. Deletes the record within a transaction.
2. Form's Current event fires for the next record.
3. MsgBox offered, and you cancel delete.
4. Transaction rolled back, so Form_Current fires for restored record.
5. AfterDelConfirm fires and shows restored record.
6. Error 3021 message is displayed.

I can't determine why error 3021 is triggered after the record has been
successfully restored and the current record has been determined and
reported. Maybe there is a delay before the error is reported, or maybe
there is some other reason for the bug.
 
Hi Allen, and thank you for the clarification.

I have done some testing with subforms.
If there is a form with a subform and I delete a record in the
masterform (with cascade deletes enabled for the table bound to the
subform) I get the error 3021 on every delete operation and not only on
the last record like in a single form.

I modified the error handling in the delete buttons to suppress the
error 3021 and hope that there are no other side effects of this bug.

Andreas
 
Back
Top