Microsoft Office / Access - проблема с filepath с помощью оболочки вызова из VBA - PullRequest
0 голосов
/ 15 июня 2011

У меня есть следующий vba-код в интерфейсе MS-Access97, который открывает текстовый документ, хранящийся на сервере:

Call Shell("winword ""\\Fileserver\Contabilita\Crucial deadlines\Bonifico97.doc""", 1)

Документ является документом слияния (получение данных из запросаи заполняет документ из полученных данных)

Теперь я поместил интерфейс базы данных на другой компьютер (все еще использующий MS-Access 97, но с установленным MS-Word 2003 на ПК - MS-Access 97все еще работает хорошо, так как он был установлен в другом каталоге), но теперь, когда приведенный выше код, с использованием оболочки вызова, выполняется, я всегда получаю «Документ не найден».Если я запускаю указанную выше команду оболочки при запуске / выполнении, документ открывается правильно.

В чем может быть проблема?Путь к файлу?Что-нибудь изменилось в VBA 97 и VBA2003 в отношении путей к файлам?Мне известно о том, что в пути к файлу есть папка с пробелом, но она прекрасно работает на ПК с установленным office97.

Буду признателен за любую помощь, которую смогу получить.Спасибо.

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

Альтернативой использованию SHELL с полным путем, указанным для Word, будет:

  1. Application.FollowHyperlink

  2. ShellExecute

В любом случае вы открываете файл с приложением, связанным с сопоставлением файлов открываемого файла. Единственная причина придерживаться Shell () - это если вы используете PID, возвращаемый функцией Shell (), для управления приложением после его запуска. Но ваш оригинальный код использовал Call Shell..., так что это не было проблемой.

2 голосов
/ 16 июня 2011

Вам нужно будет использовать полный путь для Word.

...