当我在Windows 7 SP1 64位上编译MS Access 2003应用程序并在Windows 7 SP1 32位中启动它时,Microsoft Common Dialog Control 6.0(SP3)路径从C:\Windows\SysWOW64\comdlg32.ocx
更改为\\shared\access\comdlg32.ocx
,这是应用程序从Windows 7 SP1 32位用户启动的共享驱动器。
我需要32位计算机上的参考:C:\Windows\System32\comdlg32.ocx
32位机器错误开启:Dim Cnxn As ADODB.Connection
Set Cnxn = New ADODB.Connection
但是当通过将应用程序下载到32位机器正确引用通用对话框控件,浏览comdlg32文件,添加它作为参考,并重新编译应用程序时在32位电脑上工作正常。
Common Dialog Control与ADODB有什么关系? 我不认为我在任何地方使用Microsoft Common Dialog Control。我会做更多的测试......
答案 0 :(得分:1)
如果您将其用于filedialog,请删除该引用并将其替换为本文中的解决方案:
http://access.mvps.org/access/api/api0001.htm
编辑:这也适用于较新版本,因为它只是一种使用comdlg32.ocx控件的方法。
您收到ADODB错误,因为这是另一个引用,当comdlg32.ocx无法加载Access时会退出加载引用的循环,因此不会加载ADODB组件。
您可以尝试的另一个选项是删除引用并使用后期绑定,例如
Dim fDialog As Object ' previous Office.FileDialog
Set fDialog = CreateObject("Office.FileDialog")
答案 1 :(得分:0)
该引用与ADODB无关。
检查您是否正在使用它的测试很简单:删除参考。如果项目无法编译,那么引用正在使用中。
如果您没有使用该引用,请将其删除,您的问题就解决了。如果您使用该引用 ,则可以使用Windows API调用替换其功能,如Arnoldiusss建议的那样。