错误53找不到文件

时间:2013-12-11 15:39:02

标签: vba ms-access access-vba

我有一个Access 2003 DB,它有一个VBA模块。模块功能指向Excel文件。

该函数通过命令行调用Excel文件,如下所示: Shell "Excel \\server\dir\filename.xls", vbMaximizedFocus

数据库打开,函数被触发,我得到Run-timer error '53': File not found

我知道Excel文件存在,我可以打开它。我具有安全权限,可以访问文件路径中的文件夹。

我已尝试过的内容:

反编译+压缩+重新编译数据库,using the instructions here.

我仍然遇到同样的错误。任何人都可以提出其他原因/解决方案吗?

次要编辑 - 内容保持不变。

2 个答案:

答案 0 :(得分:1)

请参阅映射的网络驱动器(letter)。检查您的即时窗口:

?dir("N:/dir\filename.xls") 

您还可以按如下方式打开工作簿(如果您需要更多灵活性):

Dim oExcel As Excel.Application
Set oExcel = CreateObject("Excel.Application")

oExcel.visible = true
oExcel.Workbooks.Open ("\\server\dir\filename.xls")

oExcel.Quit 'close 

答案 1 :(得分:1)

我无法重现文件未找到错误。我按如下方式调整了您的代码,但它会毫无错误地打开工作簿文件。

Const cstrFile = "\\HP64\share\Access\temp.xls"
If Len(Dir(cstrFile)) = 0 Then
    MsgBox "File '" & cstrFile & "' not found."
Else
    Shell "Excel " & cstrFile, vbMaximizedFocus
End If

或者,您可以创建Excel应用程序实例,然后打开该文件。但是我怀疑这是否会避免找不到错误。

Dim objExcel As Object 'Excel.Application
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Open cstrFile

' do stuff here
objExcel.Quit
Set objExcel = Nothing