我知道,要从Access 2003启动应用程序,您只需要使用'shell'命令,但我需要一些额外行为的帮助:
1.-这是一个控制台应用程序
2.-我需要传递路径作为参数,它使用“”
3.-应用程序应该以某种方式'模态':
--->访问必须等待控制台应用程序结束
--->如果可能,不是绝对必要的,控制台窗口应该是可见的,所以我们可以阅读消息。
--->如果可能,没有必要,我想与控制台应用程序交互(接受按键)
4.- Access可以读取应用程序ExitCode吗?
¿你能帮帮我吗?我真的需要这个代码...... :(
谢谢! :)
修改(解决)
首先,对不起要求,但我真的很匆忙,你总是这么快...... :)将我的解决方案作为答案发布。
答案 0 :(得分:1)
首先,对不起要问,但我真的很匆忙,而你总是这么快......:)
这是解决方案
- 字符串中的引号
要指定引号,您需要将其加倍'。所以:
要创建带引号的字符串,您必须指定:
coutesInString = """"
创建字符串" C:\ My Documents \"它应该是:
mypath= """C:\My Documents\"""
要使用参数启动我的控制台应用程序,它可能是这样的一种:
binPath = "c:\My Program\program.exe"
sourceFile = "c:\My Data\soucefile.dat"
shellString = """" & binPath & """" & " -sourcce " & """" & sourcefile & """"
shell shellstring, 1
- 等待shell结束并获取返回代码
不要使用' shell'命令。创建一个WshShell对象并启动它。
Dim wsh as Object
Dim waitOnReturn As Boolean
Dim returnCode As Integer
waitOnReturn = True
Set wsh = CreateObject("WScript.Shell")
returnCode = wsh.Run(shellString, vbNormalFocus, waitOnReturn)
答案 1 :(得分:1)
http://access.mvps.org/access/api/api0004.htm
API:Shell和Wait,Terry Kreft
(Q)每当我向另一个应用程序发出shell时,Access似乎不会在执行下一个VBA语句之前等待。在完成其他应用程序之前,如何让Access等待
(A)将以下代码粘贴到新模块中并使用Shell子。