0

我正在将我的 Access97 FE 迁移到 2003。一段时间以来,我一直在编译 97 前端和 2003 前端(我的 XP 机器为 97,Win7 机器为 2003)。就在最近(上周?).. 转换时我开始丢失我的 MSCOMCTL.OCX 参考。然而,奇怪的是它只发生在我运行 Office 2003 (SP3) 的 Windows 7(32 位)机器上。如果我在另一台 Win7 64 位 Office 2003 (SP3) 机器上转换它,我不会丢失引用的文件。

我现在已经注册/取消注册 C:\windows\system32\mscomctl.ocx 好几次了(确保以管理员身份运行命令提示符).. 并重新启动。我已经在有问题的机器上卸载了 Office 2003 并重新加载它无济于事。我已经确定 C:\windows\system32 在路径中..(它是)

如果我在我的 Win7 64 位机器上编译 FE,并将其分发到这台有问题的机器上,它将无限期地无法正确启动应用程序(在底部获得一个初始化栏)。如果我在故障机器上重新引用该文件并重新创建一个 MDE,它适用于 Windows 7 的 32 位版本和 64 位版本(即使 64 位在 C:\windows\syswow64 中有 mscomctl.ocx) ..

我的 Win7 32 位设置有问题吗?我可以使用旧版本的 FE(我在进行更改时会保留一个 repo),而且这些似乎不会丢失参考。有问题的 FE 在我的 Acc97 机器和 Win7 64 位机器上编译得很好。我曾经在“现在”有问题的 Win7 32 位机器上编译我所有的 2003 FE...?

我也多次在 MDB 文件上运行 decompile/repair/compile/compact。

任何人都可以建议尝试一下吗?

更新 好吧,我把“问题”工作站吹走并重新加载了 Win7 Pro 64 位,无论如何这将使 WSUS 工作更容易。但是问题仍然存在......所以现在我不确定该怎么想。

4

2 回答 2

2

您应该确认您的 Access 应用程序使用的 MSCOMCTL.OCX 版本与您可能编译它的任何机器上使用的版本相同。通过以下方式检查引用正在使用哪个文件:

函数列表引用()

    暗淡一长
    暗淡 b 只要

    a = References.count

    对于 b = 1 到 a
        Debug.Print b & ": " & References(b).Name & vbTab & vbTab & References(b).FullPath
    下一个 b

结束功能


这将为您提供 Access FE 中所有引用的文件名和路径列表。

使用 Windows 资源管理器找到 Access 引用的 MSCOMCTL.OCX。右键单击该文件并记下版本。确认您在所有其他计算机上使用的 MSCOMCTL.OCX 是相同的版本。

于 2012-08-21T20:44:53.740 回答
1

也许MSCOMCTL.OCX您机器上的 已被自动 Windows 更新的较新版本取代?

在工作中,上周自动安装某个更新后,我们在某些机器上遇到了问题。
引用上述链接的“此安全更新的已知问题”部分:

基于 Windows Common Control 的嵌入式 ActiveX 控件可能无法在预先存在的 Office 文档、第三方应用程序中以及在开发人员模式下插入新控件时加载。

显然我们不是唯一遇到问题的人:
安装 KB2687441 使用 MSCOMCTL.ocx 中的组件访问表单后无法打开

于 2012-08-21T05:25:46.223 回答