Invalid Database object reference - suddenly appears

Rx_

Nothing In Moderation
Local time
Today, 07:53
Joined
Oct 22, 2009
Messages
2,803
Access 2010 running on Windows Server 2008 (both 32 bit)
Stdole2 - Why is it in MS Access 2010?
All is running fine until the day before Thanksgiving.
Access 2010 Front End - and Back End are on a Windows 2008 server (for Citrix use). The image on the network can be run by any user with Windows 7 with no problem.

When running the same application (or a release two weeks previous) the "invalid Database object reference." error pops up as the Home (startup) form attempts to load.

Created a module to list references:
Note: the Stdole2 does not show up on the Tools - Reference! 'ListReferences
'VBA: C:\PROGRA~1\COMMON~1\MICROS~1\VBA\VBA7\VBE7.DLL
'Access: C:\Program Files\Microsoft Office\Office14\MSACC.OLB
'stdole: C:\Windows\system32\stdole2.tlb
'DAO: C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEDAO.DLL
'ADODB: C:\Program Files\Common Files\System\ado\msado15.dll
'Excel: C:\Program Files\Microsoft Office\Office14\EXCEL.EXE
'Office: C:\Program Files\Common Files\Microsoft Shared\OFFICE14\MSO.DLL
'VBIDE: C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB

Running the same function on Win 7 or Server 2008 - validated the name and path are exactly the same except:
All of the references check out on Server 2008 except that stdole2 is in a system 64 folder. The sys admin shows that it has not changed.
Yet stdole does not show up in the VBA Tools-reference

My guess is that something changed on the Server 2008. I am looking for clues to hand to the sys admin. All previous version releases for Access 2010 have this exact problem now. Yes, I did compact and repair both FE and BE. All files are in the same directory.
 
Had the IT staff re-set the Server 2008 image back to pre-problem image and all the same Access 2010 code works now.

But, I need to figure out how to locate the problem for future updates.
There were no "broken" links in Tools - References. If anyone has suggestions, please let me know.

Created this Function to call in a message box during the startup Form Load event. It shows the settings and path found in Tools - Reference.

On the Form Load event - msgbox listref(), vbokonly, "Tools - References"

In a standard Module:
Code:
Function ListRef() As String
Dim refCurr As Reference
Dim References As String
  For Each refCurr In Application.References
    References = References & "   " & refCurr.Name & ": " & refCurr.FullPath
  Next
ListRef = References
End Function

If a reference is off base - it never gets called of course.
Stdole2 is part of VBIDE - on the server it is part of SysWOW64 (on a 32 bit 2008) while on Windows 7 it is in a different directory.
 
Last edited:
The QueryPathOfRegTypeLib function does not return the correct path for a 32-bit version of an application in a 64-bit edition of Windows 7 or in Windows Server 2008 R2
http://support.microsoft.com/kb/982110
It is not great information, but something of interest that discusses the Server 2008 r2 \\sysWOW64\stdole2.tlb patches. I am not sure if it applies specifically to MS Access 2010.

This article is about mixing and matching 32bit and 64bit versions.
My environment is 100% 32bit Access 2010, Windows 7, and Server 2008r2
For some reason, it appears that my Windows 2008 \\sysWOW64\stdole2.tlb is causing an error on a new server. It works on the old server.
 

Users who are viewing this thread

Back
Top Bottom