VBA: Wie zum ausführen einer anderen Anwendung aus Microsoft Access
Ich habe versucht, dieses Problem herausgefunden, und es scheint, dass ich keine Lösung finden für das problem überall. Hier war der erste Teil: VBA-Shell-Befehl gibt immer "Datei Nicht Gefunden" In dieser Frage war es nicht, finden die Anwendung in den Ordner %APPDATA% für einige ungerade Grund, wahrscheinlich eine Sicherheitseinstellung.
Ich habe seitdem zog das import-tool in das gleiche Verzeichnis, dass ich speichern Sie die Datenbank, mit der kleinen Hoffnung, es richtig funktioniert.
Mein Ziel ist es, auf eine Schaltfläche klicken in MS-Access und es läuft mein import-tool direkt. Jetzt habe ich Sie öffnen den Ordner, der hält das Werkzeug. Dies funktioniert auf meinem Entwicklungs-Rechner mit admin-rechten, aber funktioniert nicht auf anderen Rechnern ohne admin-privs. Der code jetzt sieht so etwas wie die folgenden:
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)
Dies ermöglicht es der Ordner enthält die Datei geöffnet werden, sondern nur auf Computer-Konten, die vollständige Administratorrechte. Wenn Sie dies ausführen auf einen Computer-account, der weniger als die volle Privilegien, es tut sich einfach nichts.
Ich habe auch versucht, die folgenden:
Dim hProcess As Long
Dim myPath as String
myPath = Environ("ProgramFiles(x86)") & "\mytool\mytool.exe"
hProcess = Shell(myPath, vbNormalFocus)
Diesem Abschnitt "scheint" zu funktionieren, dass es die Anwendung lädt "mytool.exe" wenn ich mir den process manager. Aber nach ein paar Sekunden (vielleicht 20), erscheint ein Dialogfeld, die besagt, dass die Anwendung "mytool.exe" hat aufgehört zu arbeiten.
Eine Sache zu beachten hier ist, dass ich admin-Rechte auf meinem Entwicklungsrechner, aber ich habe alle Rechte auf meinem Rechner zu Hause. Auf meinem Rechner zu Hause, ist dieser zweite code funktioniert mit kein Problem überhaupt. Auf meiner Entwicklungs-Maschine, es abstürzt, während auf einer eingeschränkten Benutzer-Maschine, es nicht zu tun überhaupt nichts.
Gibt es irgendwelche Vorschläge, wie man öffnen Sie diese Anwendung von MS Access während der Verwendung weniger-als-admin-Rechte? Entweder führen Sie die Anwendung direkt oder zumindest öffnen Sie den Ordner, in dem gesagt Anwendung befindet.
Dank!
P. S. ich habe versucht, sowohl die ShellAndWait und RunApplication code gefunden auf stackoverflow, von denen keiner funktioniert in diesem Fall.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich benutze immer
ShellExecute
aus der Windows-API, wenn ich das ausführen müssen, etwas in VBA.Soweit ich weiß, funktioniert es auf Maschinen ohne volle Privilegien als gut.
Beispiel:
Rufen Sie nun
ShellEx
zu laufen, so ziemlich alles:Beachten Sie, dass
ShellEx
hat zwei optionale Parameter.Ich wollte nicht zeigen, dies in den obigen Beispielen, aber Sie können:
Folgen Sie diesem link
MS ACCESS: STARTEN SIE EINE ANWENDUNG AUS ACCESS 2003/XP/2000/97
hier ist ein Beispiel für das ausführen einer Anwendung im ms-access -
ich wünschte, es hilft Ihnen,
Nur über Unordnung mit http://www.mombu.com/microsoft/scripting-wsh/t-vista-uac-problem-with-wscriptshell-run-method-1508617.html. Ich habe versucht, diese auf Windows 7 home PC.
Es könnte Ihnen einige Ideen.
Microsoft Shell Controls and Automation
(Shell32) als pro msdn.microsoft.com/en-us/library/windows/desktop/...? Du kannst dannDim objshell As Shell
und sehen, wenn Namespace in intellisense zur Verfügung. Sie können auch überprüfen, ob mitobjShell.Namespace("c:\some\folder")
funktioniert.Überprüfen
mit einigen anderen ausführbaren Datei. Kann es sein, einige problem mit dem tool.