Я пытаюсь понять эту проблему, и кажется, что я не могу найти решение проблемы в любом месте. Здесь была первая часть: Команда VBA Shell всегда возвращает "File Not Found" В этом вопросе он не нашел приложение в папке% APPDATA% для некоторых Нечетная причина, вероятно, настройка безопасности.
С тех пор я переместил инструмент импорта в тот же каталог, в который я хранил базу данных, с небольшой надеждой на то, чтобы заставить ее работать правильно.
Моя цель - нажать кнопку в MS Access и запустить ее непосредственно с помощью инструмента импорта. Прямо сейчас у меня есть открытие папки, в которой хранится инструмент. Это работает на моей машине разработки, которая имеет привилегии администратора, но не работает на других машинах без admin privs. Код прямо сейчас выглядит примерно так:
Dim hProcess as Long
Dim myPath as String
Dim ex as String
ex = "C:\WINDOWS\explorer.exe "
myPath = Environ("ProgramFiles(x86)") & "\mytool\"
hProcess = Shell(ex & myPath, vbNormalFocus)
Это позволяет папке, в которой файл должен быть открыт, но только на машинных учетных записях, которые имеют полные права администратора. При запуске этого на машинной учетной записи, которая имеет менее полные привилегии, она просто ничего не делает.
Я также пробовал следующее:
Dim hProcess As Long
Dim myPath as String
myPath = Environ("ProgramFiles(x86)") & "\mytool\mytool.exe"
hProcess = Shell(myPath, vbNormalFocus)
Этот раздел "кажется" работает в том, что он загружает приложение "mytool.exe", когда я смотрю на диспетчера процессов. Однако через несколько секунд (возможно, 20) появится диалоговое окно с сообщением о том, что приложение "mytool.exe" перестало работать.
Здесь стоит отметить, что у меня есть права администратора на моей машине разработки, но у меня есть все привилегии на моей домашней машине. На моей домашней машине этот второй код работает без каких-либо проблем. На моей машине разработки он падает, а на машине с ограниченным пользователем он ничего не делает.
Есть ли какие-либо предложения о том, как открыть это приложение из MS Access при использовании привилегий меньшего размера? Либо запустить приложение напрямую, либо, по крайней мере, открыть папку, в которой находится указанное приложение.
Спасибо!
P.S. Я попробовал оба кода ShellAndWait и RunApplication, найденные в stackoverflow, ни один из которых не работает в этом экземпляре.