本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[ACC2] Shell関数を用いて DOS のコマンドを実行する方法

文書番号: 401657

最終更新日: 1997/11/01


この資料は以下の製品について記述したものです。

この記事は、以前は次の ID で公開されていました: JP401657

概要

Shell 関数を利用して、MS - DOS の DIR、COPY、DEL 等のコマンドを実行する方法を紹介します。

現象

Shell 関数は、引き数 commandstring に拡張子が EXE、COM、BAT または PIF の実行形式のファイルを指定しなければなりません。Shell 関数を使用して MS - DOS のコマンドを実行するには、引き数 commandstring に 「 COMMAND.COM 」を指定します。
COMMAND.COM は、MS - DOS の内部コマンドを実行するためのパラメータを、2 つ持っています。
  • COMMAND / C → 指定されたコマンドを実行し、アプリケーションに戻ります。
  • COMMAND / K → 指定されたコマンドを実行しますが、アプリケーションには戻らずに、DOS プロンプトの状態になります。DOS プロンプトから戻るには、 MS - DOS の EXIT コマンドを実行します。

■ プロシージャの作成

  1. データベース ウィンドウで [ファイル] - [新規] - [モジュール] コマンドを選択するか、データベース ウィンドウの <モジュール> ボタンをクリックし、<新規作成> ボタンをクリックします。
  2. [編集] - [新規プロシージャ] コマンドを選択するか、ツールバーの<プロシージャ作成> ボタンをクリックします。
  3. [プロシージャの新規作成] ダイアログ ボックスの [種類] で"Function"を選択します。[名前] でプロシージャ名 (ShellDOS_Exit) を入力します。
  4. 以下のサンプルプロシージャを入力します。

■ サンプル プロシージャ

MS-DOS の COPY コマンドを実行してファイルのコピーを行い、Access 2.0 に制御を戻しています。 以下の例では、C ドライブにある DB1.MDB ファイルを、D ドライブのDB2.MDB ファイルにコピーします。
  ---------------------------------------------------------------------------
  Function ShellDOS_Exit () As Integer
      On Error GoTo ShellDOS_Exit_Err
      Dim MyCommand As String
      Dim TaskId As Integer
      'コマンドを MyCommand 引き数に格納します。
       MyCommand = " COMMAND.COM /C COPY C :¥ DB1.MDB D :¥ DB2.MDB "
      TaskId = Shell (MyCommand, 6)
      ShellDOS_Exit = True
  ShellDOS_Exit_End:
      Exit Function
  ShellDOS_Exit_Err:
      MsgBox Error$
      ShellDOS_Exit = False
      GoTo ShellDOS_Exit_End
  End Function
  ---------------------------------------------------------------------------

■ 注意

MS-DOS レベルで発生するエラー (COPY コマンドの構文が間違っている等) は、Access 2.0 でエラートラップできません。Shell 関数を実行する前に、 MS-DOS のコマンドの構文が正しく記述されているかどうかを確認する必要があります。

Keywords: KBHOWTO KB401657
Technology: kbAccess200 kbAccessSearch

inserted by FC2 system