Now I have it at home, typically, it is not behaving exactly as it was at work.
You may recall that I managed to get the dodgy table down to two fields and zero records and it would hang, for ever. Now it will only hang if I leave a few thousand records (although I can still get rid of all but two fields to maintain the hang), but now, it will eventually open after many minutes.
But, I accidentally discovered something else. IT WILL HANG IF I TRY TO RESIZE THE WINDOW in which Access resides. It works best if I make the window very tiny, just big enough to click on the dodgy table. After it eventually opens, if I now try to make the window bigger, it will hang and the window blanks (goes white internally). After a time, Access reappears with the dodgy table now open.
Also, during the hang, Access memory usage jumps to 350-500MB. On a working machine it is always around 20 – 30 MB. So, the hang uses over 300MB!
I have looked at the various event logs:
Application log: Red cross; Error – Hanging application MSACCESS.EXE.
Microsoft Office diagnostics: Yellow triangle; Warning - Office diagnostics has determined there is some evidence of repeated problems (made me laugh that one!).
Microsoft Office Sessions: Yellow triangle; Warning – Application etc etc, Access etc. This session ended with a hang.
I have been running Process Explorer (really useful if you don’t know about it
http://download.cnet.com/Process-Explorer/3000-2094_4-10223605.html
)
Today, Access was using 50% processor (i.e. one core fully). (In our hangs with the tiny table, Access was showing 0% and idle was 99%. So this is another difference.
Although there are these differences, I am assuming that somehow they are all connected. I hope you are still with me, it is really confusing!).
But, Process Explorer showed lbghost dll as purple, this being the part of Office that I assume is the cause of the hang (remember this is not my code, it is Access’s code!). I have copied part of its log below:
Lbghost.dll Microsoft Office Program Recovery.
xpxxxx
=runtime error
TLOSS error
SING error
DOMAIN error
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information.
- Attempt to use MSIL code from this assembly during native code initialization
This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain.
- not enough space for locale information
- Attempt to initialize the CRT more than once.
This indicates a bug in your application.
- CRT not initialized
- unable to initialize heap
- not enough space for lowio initialization
- not enough space for stdio initialization
- pure virtual function call
- not enough space for _onexit/atexit table
- unable to open console device
- unexpected heap error
- unexpected multithread lock error
- not enough space for thread data
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
- not enough space for environment
- not enough space for arguments
- floating point not loaded
Microsoft Visual C++ Runtime Library
<program name unknown>
Runtime Error!
Program:
InitializeCriticalSectionAndSpinCount
kernel32.dll
So, in conclusion, it looks like it is the Lbghost.dll Microsoft Office Program Recovery; it hangs when resizing a window as well as opening the table; it causes memory usage to jump enormously.
I’m still playing around, but if this new info jumps out to anyone please let me know!
I’ve yet to try the various ideas mentioned previously. And to prepare a db for posting (the real one is very confidential).
Thanks all again.
Skeletal