Command オブジェクト (ADO)

適用先: Access 2013、Office 2013

データ ソースに対して実行する特定のコマンドを定義します。

注釈

Command オブジェクトを使用すると、データベースに対してクエリを実行して Recordset オブジェクトのレコードを取得したり、一括操作を実行したり、データベースの構造を操作したりできます。 プロバイダーの機能によっては、 Command の一部のコレクション、メソッド、またはプロパティを参照すると、エラーが発生する場合があります。

Command オブジェクトのコレクション、メソッド、およびプロパティを使用すると、次の操作を実行できます。

  • CommandText プロパティを使用して、コマンドの実行可能なテキスト (SQL ステートメント) を定義できます。

  • Parameter オブジェクトと Parameters コレクションを使用して、パラメーター化されたクエリまたはストアド プロシージャの引数を定義できます。

  • Execute メソッドを使用して、コマンドを実行し、必要に応じて Recordset オブジェクトを取得できます。

  • CommandType プロパティを使用して、コマンドを実行する前にそのコマンドの種類を指定し、パフォーマンスを向上できます。

  • Prepared プロパティを使用して、コマンドの実行前に、プロバイダーがそのコマンドの準備された (コンパイル済みの) バージョンを保存するかどうかを制御できます。

  • CommandTimeout プロパティを使用して、コマンドの実行までプロバイダーが待機する時間を秒数で設定できます。

  • Command オブジェクトの ActiveConnection プロパティを使用して、開いている接続をそのオブジェクトに関連付けることができます。

  • Name プロパティを設定して、 Command オブジェクトを関連付けられている Connection オブジェクトのメソッドとして識別できます。

  • Command オブジェクトを RecordsetSource プロパティに渡すことにより、データを取得できます。

  • Properties コレクションを使用して、プロバイダー固有の属性にアクセスできます。

注:

[!メモ] Command オブジェクトを使用せずにクエリを実行するには、クエリ文字列を Connection オブジェクトの Execute メソッド、または Recordset オブジェクトの Open メソッドに渡します。 ただし、コマンド テキストを永続化して再実行するか、クエリ パラメーターを使用する場合は、 Command オブジェクトが必要となります。

前に定義した Connection オブジェクトとは独立して Command オブジェクトを作成するには、その ActiveConnection プロパティを有効な接続文字列に設定します。 ADO では引き続き Connection オブジェクトが作成されますが、そのオブジェクトはオブジェクト変数に割り当てられません。 ただし、複数の Command オブジェクトを同じ接続に関連付ける場合は、 Connection オブジェクトを明示的に作成して開く必要があります。これにより、 Connection オブジェクトがオブジェクト変数に割り当てられます。 Command オブジェクトの ActiveConnection プロパティをこのオブジェクト変数に設定しない場合、同じ接続文字列を使用する場合でも、ADO は Command オブジェクトごとに新しい Connection オブジェクトを作成します。

Command を実行するには、関連する Connection オブジェクトの該当する Name プロパティを使用して呼び出します。 Command では、その ActiveConnection プロパティを Connection オブジェクトに設定する必要があります。 Command にパラメーターがある場合は、その値を引数としてメソッドに渡します。

同じ接続で複数の Command オブジェクトを実行し、いずれかの Command オブジェクトが出力パラメーターを持つストアド プロシージャの場合、エラーが発生します。 各 Command オブジェクトを実行するには、別の接続を使用するか、接続から他のすべての Command オブジェクトを切断します。

Parameters コレクションは Command オブジェクトの既定のメンバーです。 結果として、次の 2 つのコード ステートメントは同じになります。