VBAでコマンドプロンプトを呼び出す記述で
やりたいことはVBAからコマンドプロンプトにてBCP.EXEを呼び出してSQL文を実行することです。
コマンドプロンプトで直接打つと以下のようなコマンドになります。SQL文は長いので省略しました。
*************************
"c:\WINNT\system32\cmd.exe /k" "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\bcp.exe " "SQL文"
*************************
これをVBAで以下のように記述しました。
//////////////////////////////////////////////////
stAppName = "c:\WINNT\system32\cmd.exe /k"
stAppName = stAppName & "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\bcp.exe "
stAppName = stAppName & "SQL文"
Call Shell(stAppName, 1)
/////////////////////////////////////////////////
上のような記述だとコマンドプロンプトでは パスのダブクォテーションがなくなり
*************************
c:\WINNT\system32\cmd.exe /k C:\Program Files\Microsoft SQL Server\80\Tools\Binn\bcp.exe ”SQL文”
*************************
のように実行されBCP.exeのパスが通らず以下のエラーになります。
/////////////////////////////////////////////////
内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
/////////////////////////////////////////////////
どなたかVBAでコマンドのパスにダブルクォテーションをつける方法を教えてください。
お礼
回答ありがとうございます。 「host」 確かにこれですね。 でもディレクトリの移動など、できない機能もあるみたいですね。残念。 D:\>sqlplus scott/lion@aaa SQL*Plus: Release 9.2.0.1.0 - Production on 木 Sep 13 10:40:36 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Oracle9i Release 9.2.0.1.0 - Production JServer Release 9.2.0.1.0 - Production に接続されました。 SQL> host Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. D:\>cd D:\ D:\>dir /b oracle Temp Test D:\>cd D:\Test D:\Test>cd D:\Test D:\Test>exit SQL> host cd D:\ SQL>