设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 5462|回复: 4
打印 上一主题 下一主题

[Access本身] 双击OLE字段关联应用程序打开文件出错

[复制链接]
跳转到指定楼层
1#
发表于 2013-4-21 16:10:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
双击OLE字段,系统自动关联相关程序打开所保存的文件,问题本来很简单,可是,ACCESS似乎对WORD、EXCEL甚至是PDF等“近亲”文档特别关照,可以在窗体控件内直接显示内容的方式显示,这个时候,双击OLE控件,变成了是在控件内显示文档,而不是在关联程序内显示文档了。
其他的,各种图片文件、TXT文件,其他还有什么我不知道,只测试发现了这几类,都归为“包装程序外壳对象”。仍然可以正常关联打开。

对WORD文档等,在OLE控件中双击不能关联打开的问题,
解决方法一:保存文件时,就应选择“显示为图标”,或在控件属性中设置“显示类型”为图标。
解决方法二(不成熟):
   Me.附件.Action = acOLEActivate      '为操作(如编辑)打开 OLE 对象。
   Me.附件.Verb = acOLEVerbOpen     '操作模式,在单独的应用程序窗口中打开对象。

结果发现,不管“附件”控件中所存为何种文件类型,acOLEActivate 的值都是7,acOLEVerbOpen的值都是-2,打开WORD类文件是可以了,但对Package类(包装程序外壳对象)又出问题了。
弹出如下窗口:

如果将 Me.附件.Verb 的值设为-1或1,就可以打开Package类文件了,但WORD类文件又打不开了。烦啊!
我想“Me.附件.Verb“的值是否对应右键菜单中的命令序?
那如何用VBA代码识别OLE控件中的对象类别?,如果能识别就可以直接分别赋值解决吧?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2013-4-22 08:58:59 | 只看该作者
我测试了一下,在窗体上插入的ole对象都可以双击打开,有的会弹出一个警告对话框,点打开或运行就可以了
3#
 楼主| 发表于 2013-4-22 18:25:05 | 只看该作者
t小宝 发表于 2013-4-22 08:58
我测试了一下,在窗体上插入的ole对象都可以双击打开,有的会弹出一个警告对话框,点打开或运行就可以了

1、窗体(非数据表窗体)上的OLE控件的“显示类型”要设置为“内容”。
2、插入的对象要选择WORD DOC文档来测试。
3、插入OLE文件的对话窗中,去掉“显示为图标”的勾记。

请问版主是按这样测试的吗?只有这种情况下不能双击打开,其他情况都是可以双击打开的,我只是寻求一种万全的解决方法。

点击这里给我发消息

4#
发表于 2013-4-22 22:18:11 | 只看该作者
我明白你的意思了,以下是用VBA代码判断OLE字段中的内容是否是包对象。

If InStr(StrConv(LeftB(Me.附件.Value, 52), vbUnicode), "Package") > 0 Then
    MsgBox "OLE字段内容是包对象。"
End If
5#
 楼主| 发表于 2013-4-22 23:26:05 | 只看该作者
t小宝 发表于 2013-4-22 22:18
我明白你的意思了,以下是用VBA代码判断OLE字段中的内容是否是包对象。

If InStr(StrConv(LeftB(Me.附件 ...

可以了,非常感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 14:45 , Processed in 0.108115 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表