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でコマンドのパスにダブルクォテーションをつける方法を教えてください。
お礼
できました。 いろいろホームページを探してみたつもりでしたが、分からなかったので、本当に助かりました。 ありがとうございました。