当我在Windows7 SP1 64位系统上编译MS Access 2003应用程序,并在Windows7 \\shared\access\comdlg32.ocx 32位系统中启动它时,微软通用对话控件6.0 (SP3)路径从C:\Windows\SysWOW64\comdlg32.ocx更改为\\shared\access\comdlg32.ocx,这是针对Windows7 SP1 32位用户启动应用程序的共享驱动器。
我需要在32位机器上的参考是:C:\Windows\System32\comdlg32.ocx
32位机器出现错误:Dim Cnxn As ADODB.Connection Set Cnxn = New ADODB.Connection,但当通过将应用程序下载到32位机器、浏览comdlg32文件、添加为引用并重新编译来正确引用通用对话框控件时,该应用程序在32位pc上运行良好。
公共对话控件与ADODB有什么关系?我不认为我在任何地方都使用Microsoft Common Dialog Control。我会做更多的测试。
发布于 2012-01-06 07:37:49
该引用与ADODB无关。
检查你是否在使用它的测试很简单:删除引用。如果项目编译失败,则该引用正在使用中。
如果您不使用引用,请删除它,这样您的问题就解决了。如果您使用的是引用,则可以按照Arnoldiusss的建议,将其功能替换为Windows API调用。
发布于 2012-01-06 06:52:51
如果您将其用于文件对话框,请移除该引用并将其替换为本文中的解决方案:
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")https://stackoverflow.com/questions/8750265
复制相似问题