Office中国论坛/Access中国论坛

标题: 双击OLE字段关联应用程序打开文件出错 [打印本页]

作者: zww3008    时间: 2013-4-21 16:10
标题: 双击OLE字段关联应用程序打开文件出错
双击OLE字段,系统自动关联相关程序打开所保存的文件,问题本来很简单,可是,ACCESS似乎对WORD、EXCEL甚至是PDF等“近亲”文档特别关照,可以在窗体控件内直接显示内容的方式显示,这个时候,双击OLE控件,变成了是在控件内显示文档,而不是在关联程序内显示文档了。
其他的,各种图片文件、TXT文件,其他还有什么我不知道,只测试发现了这几类,都归为“包装程序外壳对象”。仍然可以正常关联打开。

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

结果发现,不管“附件”控件中所存为何种文件类型,acOLEActivate 的值都是7,acOLEVerbOpen的值都是-2,打开WORD类文件是可以了,但对Package类(包装程序外壳对象)又出问题了。
弹出如下窗口:
[attach]51668[/attach]
如果将 Me.附件.Verb 的值设为-1或1,就可以打开Package类文件了,但WORD类文件又打不开了。烦啊!
我想“Me.附件.Verb“的值是否对应右键菜单中的命令序?
那如何用VBA代码识别OLE控件中的对象类别?,如果能识别就可以直接分别赋值解决吧?
[attach]51669[/attach]

作者: t小宝    时间: 2013-4-22 08:58
我测试了一下,在窗体上插入的ole对象都可以双击打开,有的会弹出一个警告对话框,点打开或运行就可以了
作者: zww3008    时间: 2013-4-22 18:25
t小宝 发表于 2013-4-22 08:58
我测试了一下,在窗体上插入的ole对象都可以双击打开,有的会弹出一个警告对话框,点打开或运行就可以了

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

请问版主是按这样测试的吗?只有这种情况下不能双击打开,其他情况都是可以双击打开的,我只是寻求一种万全的解决方法。
作者: t小宝    时间: 2013-4-22 22:18
我明白你的意思了,以下是用VBA代码判断OLE字段中的内容是否是包对象。

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

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

可以了,非常感谢。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3