2013-12-11 2 views
3

У меня есть база данных Access 2003 с модулем VBA. Функция модуля указывает на файл Excel.Ошибка 53 Файл не найден

Функция вызова метода Excel файл через командную строку, как это: Shell "Excel \\server\dir\filename.xls", vbMaximizedFocus

открывает БД, функция получает срабатывает, и я получаю Run-timer error '53': File not found

Я знаю, что файл Excel существует, и Я могу открыть его. У меня есть разрешения безопасности для доступа к папкам в пути к файлам.

Я уже пробовал:

декомпилировать + компактный + перекомпилировать DB, using the instructions here.

я все еще получаю ту же ошибку. Может ли кто-нибудь предложить другие причины/решения?

мелкое изменение - содержание остается неизменным.

+0

Можете ли вы получить доступ к файлу '\\ server \ dir \ filename.xls' из окна проводника файлов? – Shiva

+0

есть, я могу. –

ответ

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 
+0

спасибо за решение, +1 –

1

Обратитесь к подключенному сетевому диску (букве). Проверьте немедленное окно:

?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 
+0

спасибо, что ответ, +1 –

+1

В чем причина того, что путь не распознается? – Trace

+1

по какой-то причине, набрав 'excel' в оболочку, не будет запускать excel. но если я ввел полный путь к excel.exe, он смог запустить. так как путь может отличаться на разных машинах, и для учета будущих обновлений программного обеспечения я решил просто вызвать объект excel. –

Смежные вопросы