Access2003:不支持这种ActiveX控件

来源:互联网 发布:软件技术支持前景 编辑:程序博客网 时间:2024/06/05 06:27

以下方法可以解决在 Access 2003 或一些 Access 2002/XP SP3 用户使用 RichTX32.OCX ActiveX 控件(Rich Text Edit)出错的的问题

在 Access 2002 /SP3 或 Access 2003 就可插入Rich text edit控件中总是提示Microsoft office access 不支持这种ActiveX 控件
这种方法允许  Internet Explorer使用 Richtx32.ocx (由于安全的考虑). 可参考微软的KB 838010所说的 http://support.microsoft.com/kb/838010/zh-cn
为了允许  Access 2002 /SP3 或 2003 使用这个控件, 你可以通过修改注册表来解决, 在注册表中找到以下注册项(请先备份注册表):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{3B7C8860-D78F-101B-B9B5-04021C009402}


RichTx32.ocx 的 class ID 总是 3B7C8860-D78F-101B-B9B5-04021C009402
这个键值 有一个Compatibility Flags 项,数据类型为  DWORD 

如果它的值 是 0x400 (二进键是, 十进制是 1024) 将它简单的改为 0  修改之后,
你会发现,在 Access 2002 /SP3 或 Access 2003 就可插入Rich text edit控件中


以下是微软原文:
当您打开文档时 Microsoft 格式文本框控件 6.0 (Richtx32.ocx) 的实例包含在 Microsoft Office XP 中或在 Microsoft Office 2003 中,该控件可能无法成功加载,或者您可能会收到安全警告,要求您交互。该文档可能无法正常工作,或者您可能会遇到运行时错误,因为该控件不可用。如果满足下列条件之一时,将发生此问题:
在文档中嵌入控件。
该控件用于作为一部分的 Microsoft Visual Basic for Applications (VBA) 用户窗体。
为外接程序项目中使用该控件。




20.dll) 所使用的 VBA 验证安全设置的控件。最新版本的 FM20.dll 确定它是否可以安全地使用IObjectSafety接口初始化在创建该对象。此外,FM20.dll 会检查 Internet Explorer ActiveX 兼容性策略设置,以确定是否已标记某个控件"始终不安全"。


icrosoft Visual Basic 6.0 中包含格式文本框控件 6.0 会错误地标记为"可安全执行初始化。此设置表示格式文本框控件 6.0 可以来自恶意源加载持久化的数
因为 Microsoft Internet Explorer 会阻止运行多格式文本框控件 6.0 的安全设置,就会出现此问题。最新版本的 Microsoft 窗体 2.0 库 (F
M据而不危及用户。但是,格式文本框控件 6.0 是仅仅是RichEdit控件 (RIched20.dll) 系统的包装。格式文本框控件 6.0 不会确保传递给RichEdit控件的数据安全。此外,格式文本框控件 6.0 不会不确保使用格式文本框控件 6.0 RichEdit控件的版本可以处理不受信任的数据。格式文本框控件 6.0 不应标记为可安全执行不受信任的初始化。因此,作为一项预防措施,Internet Explorer 6.0 具有丰富 TextBox 控件 6.0 设置"始终不安全"的标志。"始终不安全"的标志可防止多格式文本框控件 6.0 Internet Explorer 6.0 中,在 Office XP 中,并在 Office 2003 中
使用。

在前一文中记述了Access启动不了,或者出现“正在准备安装……”的问题,今天则找到了Access对控件支持的问题。
本来Access、Excel、Word的编程基础是VBA,也就是说与VB有关,但又不是VB,所以Access除了一些基本控件外,而且可以像VB一样使用部件(可见的或者可视的)、使用引用(不可视类),但是由于些许原因,Access不能使用了,其实在Excel或者Word里面也不能使用了,因为涉及到整个VBA的使用面。
本次机器上出现的Access问题可能与操作系统有关,原来是XP SP1,装office2003也是sp1,就兼容很好,没有出现这样的问题,当时为能够在Access里面使用Datagrid控件而感到兴奋。但是现在重新安装XP系统,而且是sp3,再安装Office2003,尽管是sp3版本的,但是VB运行库扩展文件(请参考后附链接)却不是最新的,于是到微软官方站点下载 VB6.0运行扩展库,进行安装后重新启动,在Access里面插入Datagrid控件,说明没有注册,于是乎在开始运行里面输入 Regsvr32 c:\WINDOWS\system32\msdatgrd.ocx,回车注册成功,然后打开原来带有Datagrid控件的窗体,一切Okay!
需要说明的是这种情况一般出现在Ghost WindowsXP sp3 加装office2003中,一般ghost里面的office是三合一的,也就是说不含access,是因为电脑城装机人想不到一般消费者会使用access,更不会想到access会用到VB扩展的控件文件,所以也就没有把微软更新的VB扩展文件打包到ghost文件里。解决这个问题突破点是查英文,我想中文很难从问题里找到准确的链接,就想到老外可能也会遇到这样的问题,于是乎通过链接【1】,找到问题原因,再就搜索找到链接【2】。
导入一下注册表可尝试解决。


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Micros
oft\Internet Explorer\ActiveX Compatibility\{3B7C8860-D78F-101B-B9B5-04021C009402}]
"Compatibility Flags"=dword:00000000


参考链接如下:
【1】Microsoft Office Access doesn't support this ActiveX control,链接说明是由于微软安全更新引起的
【2】在 Visual Basic 6.0 服务包 6 运行时扩展文件的累积更新汇总的说明,这里面有上面给的链接下载微软官方地址

0 0
原创粉丝点击