从Access 2003启动同步控制台应用程序

时间:2016-02-10 18:00:42

标签: windows ms-access

我知道,要从Access 2003启动应用程序,您只需要使用'shell'命令,但我需要一些额外行为的帮助:

1.-这是一个控制台应用程序

2.-我需要传递路径作为参数,它使用“”

3.-应用程序应该以某种方式'模态':

--->访问必须等待控制台应用程序结束

--->如果可能,不是绝对必要的,控制台窗口应该是可见的,所以我们可以阅读消息。

--->如果可能,没有必要,我想与控制台应用程序交互(接受按键)

4.- Access可以读取应用程序ExitCode吗?

¿你能帮帮我吗?我真的需要这个代码...... :(

谢谢! :)

修改(解决)

首先,对不起要求,但我真的很匆忙,你总是这么快...... :)将我的解决方案作为答案发布。

2 个答案:

答案 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子。