次の方法で共有


Open メソッド (ADO Recordset)

適用先: Access 2013、Office 2013

カーソルを開きます。

構文

recordsetオープン ソースActiveConnectionCursorTypeLockTypeオプション

パラメーター

パラメーター 説明
Source 省略可能です。 有効な Command オブジェクト、SQL ステートメント、テーブル名、ストアド プロシージャの呼び出し、URL、または永続的に保存された Recordset を格納しているファイル名や Stream オブジェクト名に評価されるバリアント型 ( Variant ) の値を指定します。
ActiveConnection 省略可能です。 有効な Connection オブジェクトのオブジェクト変数名に評価されるバリアント型 ( Variant ) の値、または ConnectionString パラメーターを含む文字列型 ( String ) の値を指定します。
CursorType 省略可能です。 プロバイダーが Recordset を開くときに使用するカーソルの種類を決める CursorTypeEnum 値を指定します。 既定値は adOpenForwardOnly です。
LockType 省略可能です。 プロバイダーが Recordset を開くときに使用するロック (同時作用) の種類を決めるための LockTypeEnum 値を指定します。 既定値は adLockReadOnly です。
Options オプション。 プロバイダーが Command オブジェクト以外のものを表している場合、または Recordset を以前に保存したファイルから復元する必要がある場合に、Source 引数を評価する方法を示す Long 値。 1 つ以上 の CommandTypeEnum または ExecuteOptionEnum 値を指定できます。これは、ビットごとの AND 演算子と組み合わせることができます。

注:

[!メモ] 永続化された Recordset を含む Stream から Recordset を開く場合、 ExecuteOptionEnum 値の adAsyncFetchNonBlocking を使用しても無効です。この場合、フェッチは同期であり、ブロッキングが行われます。

Open メソッドを使用する場合は、ExecuteOpenEnumadExecuteNoRecords または adExecuteStream を指定しないでください。

注釈

ADO の Recordset の既定のカーソルは、サーバー側にある読み取り専用の前方スクロール カーソルです。

Recordset オブジェクトで Open メソッドを使用すると、ベース テーブルからのレコード、クエリの結果、または以前に保存された Recordset を表すカーソルを開くことができます。

オプションの Source 引数を使用して、 Command オブジェクト変数、SQL ステートメント、ストアド プロシージャ、テーブル名、URL、または完全なファイル パス名のいずれかを使用してデータ ソースを指定します。 Source がファイル パス名の場合は、絶対パス ("c:\dir\file.rst")、相対パス (".) を指定できます。\file.rst")、または URL ("https://files/file.rst")。

呼び出しが成功したかどうかを簡単に判断する方法がないため、Open メソッドの Source 引数を使用して、レコードを返さないアクション クエリを実行することはお勧めしません。 このようなクエリによって返される Recordset は閉じられます。 代わりに、Command オブジェクトの Execute メソッドまたは Connection オブジェクトの Execute メソッドを呼び出して、レコードを返さない SQL INSERT ステートメントなどのクエリを実行します。

ActiveConnection 引数は ActiveConnection プロパティに対応し、Recordset オブジェクトを開く接続を指定します。 この引数に接続の定義を指定すると、ADO により、指定されたパラメーターを使用して新しい接続が開かれます。 クライアント側カーソル (CursorLocation = adUseClient) で Recordset を開いた後、このプロパティの値を変更して、更新プログラムを別のプロバイダーに送信できます。 また、このプロパティを Nothing (Microsoft Visual Basic の場合) または NULL に設定すると、その Recordset を任意のプロバイダーから切断することができます。 ただし、サーバー側カーソルの ActiveConnection を変更すると、エラーが発生します。

Recordset オブジェクトのプロパティに直接対応するその他の引数 (SourceCursorType、および LockType) と、プロパティの関係は次のとおりです。

  • Recordset オブジェクトを開く前のプロパティは、読み取り/書き込み可能です。
  • Open メソッドの実行時に、対応する引数を指定しないと、プロパティの設定値が使用されます。 引数を指定した場合は、対応するプロパティの設定値が上書きされて引数の値に更新されます。
  • Recordset オブジェクトを開いた後、プロパティは読み取り専用になります。

注:

[!メモ] Recordset オブジェクトの Source プロパティに有効な Command オブジェクトが設定されている場合、その Recordset オブジェクトが開いていなくても、 ActiveConnection プロパティは読み取り専用になります。

Source 引数に Command オブジェクトを指定する場合、同時に ActiveConnection 引数を指定すると、エラーが発生します。 Command オブジェクトの ActiveConnection プロパティは、あらかじめ有効な Connection オブジェクトまたは接続文字列に設定しておく必要があります。

Source 引数に Command オブジェクト以外のものを渡す場合は、Options 引数を使用して Source 引数の評価を最適化できます。 Options 引数が定義されていない場合、ADO はプロバイダーを呼び出して、引数が SQL ステートメント、ストアド プロシージャ、URL、またはテーブル名であるかどうかを判断する必要があるため、パフォーマンスが低下する可能性があります。 使用している ソース の種類がわかっている場合は、 Options 引数を設定すると、ADO に関連するコードに直接ジャンプするように指示されます。 引数 OptionsSource 型と一致しない場合は、エラーが発生します。

Source 引数に Stream オブジェクトを指定する場合は、他の引数は指定しないでください。 そのようにすると、エラーが発生します。 Stream から Recordset を開く場合は、 ActiveConnection の情報は保持されません。

Recordset に接続が関連付けられていない場合、Options 引数の既定値は adCmdFile です。 代表的な例では、永続的に保存された Recordset オブジェクトの場合がこれに該当します。

データ ソースがレコードを返さない場合、プロバイダーは BOF プロパティと EOF プロパティを True に設定し、カレント レコードの位置が未定義になります。 カーソルの種類によっては、この空の Recordset オブジェクトに新しいデータを追加することができます。

開いている Recordset に対する操作が完了したら、 Close メソッドを使用して、関連するシステム リソースをすべて解放します。 オブジェクトを閉じてもメモリからは削除されないので、そのオブジェクトのプロパティを変更したり、Open メソッドを使用してもう一度開いたりすることができます。 オブジェクトをメモリから完全に削除するには、オブジェクト変数に Nothing を設定します。

ActiveConnection プロパティを設定する前に、オペランドなしで Open を呼び出し、 RecordsetFields コレクションにフィールドを追加することによって作成された Recordset のインスタンスを作成することができます。

CursorLocation プロパティを adUseClient に設定している場合は、非同期に行を取得できる方法が 2 つあります。 推奨される方法は、OptionsadAsyncFetch に設定することです。 もう 1 つの方法として、 Properties コレクションで "非同期行セット処理" ダイナミック プロパティを使用することもできますが、 Options パラメーターを adAsyncFetch に設定していない場合は、関連して取得されたイベントが失われる可能性があります。

注:

MS Remote プロバイダーのバックグラウンド フェッチは、Open メソッドの Options パラメーターを通してのみサポートされます。

注:

[!メモ] http スキームを使用している URL は、Microsoft OLE DB Provider for Internet Publishing を自動的に呼び出します。 詳細については、「 絶対 URL と相対 URL」を参照してください