关于permission denied(许可被拒绝)

fly896403 2009-12-21 03:04:58
在VB 中调用水晶报表,利用OLE对象来显示一个EXCEL文件。 执行到 .SetOleLocation path & "\1234.xls"报permission denied(许可被拒绝)。
不知道这是什么原因?知道的麻烦指导指导,不知道的希望帮顶。谢了先~~~~~

' 声明一个新的OLE对象

Dim oOleObject As craxdrt.OLEObject

' 声明一个普通对象

Dim oObject As Object

' 声明一个节对象.

Dim oSection As craxdrt.Section

' 当OLE对象找到时,这个变量设为TRUE.

Dim bOle As Boolean

bOle = False



' 在每个节中寻找所有报表对象

For Each oSection In objCRReport.Sections

For Each oObject In oSection.ReportObjects

' 找到第一个OLE对象.

If oObject.Kind = craxdrt.crOLEObject Then

Set oOleObject = oObject

bOle = True

Exit For

End If

Next oObject

If bOle Then Exit For

Next oSection



' 格式化BLOB区域对象

With oOleObject

.BackColor = vbGreen
.SetOleLocation path & "\1234.xls"
End With
...全文
682 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly896403 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 tiger_zhao 的回复:]
1234.xls 只读。
1234.xls 被程序的其他地方使用中。
[/Quote]
非只读,没调用过。不过我的OLE对象是在RPT文件中画进去的,不是代码里插入的。是不是这个问题?
Tiger_Zhao 2009-12-23
  • 打赏
  • 举报
回复
1234.xls 只读。
1234.xls 被程序的其他地方使用中。
fly896403 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 tiger_zhao 的回复:]
1234.xls 正被打开中,不能多重打开。
[/Quote]
问题依旧
Tiger_Zhao 2009-12-23
  • 打赏
  • 举报
回复
不是很明白。
你可以试试自己复制 xls 文件再供 OLE 使用。
fly896403 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 tiger_zhao 的回复:]
是否报表中 OLE 对象会重复创建多个实例,导致重复打开 1234.xls?
[/Quote]
由文件创建会复制一个副本,不过我不是由文件创建的。可能我的思路一开始就是错的。
Tiger_Zhao 2009-12-23
  • 打赏
  • 举报
回复
是否报表中 OLE 对象会重复创建多个实例,导致重复打开 1234.xls?
Tiger_Zhao 2009-12-22
  • 打赏
  • 举报
回复
1234.xls 正被打开中,不能多重打开。
fly896403 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 tiger_zhao 的回复:]
1234.xls 正被打开中,不能多重打开。
[/Quote]
我已经关掉了,不过没注意任务管理器里进程。试试~~~
fly896403 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cqq_chen 的回复:]
不太好理解啊!
如果是我的看法,应该是水晶报表没有使用权限才对啊!
另:这种方法不好用吧!如果是要打开excel文件,为什么不直接用excel呢?
[/Quote]
我也觉得是第一种。应该是没有设置权限。
另:唉,大千世界无奇不有。说来话长~~~
cqq_chen 2009-12-21
  • 打赏
  • 举报
回复
不太好理解啊!
如果是我的看法,应该是水晶报表没有使用权限才对啊!
另:这种方法不好用吧!如果是要打开excel文件,为什么不直接用excel呢?
fly896403 2009-12-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 patrickkong 的回复:]
你如此肯定,我别的没建议。
[/Quote]
我试过了,应该是对象的权限问题。虽然遍历出了OLE对象,但这个对象应该不是RPT文件中的那个对象,所以权限不够。我在RPT文件中画了一个OLE控件, 就是不太清楚在代码里这么操作这个OLE对象。
  • 打赏
  • 举报
回复
你如此肯定,我别的没建议。
fly896403 2009-12-21
  • 打赏
  • 举报
回复
不是PATH的问题。
  • 打赏
  • 举报
回复
debug下你的path,再打开属性,看看。
fly896403 2009-12-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 patrickkong 的回复:]
看看你有没有权限在你的path。
你的代码都不是关键的。
[/Quote]
path是没问题的。我也觉得是权限问题,我是用RPT模版文件做的。为什么可以设置其他属性,单单这个不可以?
  • 打赏
  • 举报
回复
看看你有没有权限在你的path。
你的代码都不是关键的。
fly896403 2009-12-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jhone99 的回复:]
.SetOleLocation app.path & "\1234.xls"
[/Quote]
那个PATH是我自己的一个变量。
jhone99 2009-12-21
  • 打赏
  • 举报
回复
.SetOleLocation app.path & "\1234.xls"

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧