Connection.OpenRecordset メソッド (DAO)

適用先: Access 2013、Office 2013

新しい Recordset オブジェクトを作成し、Recordsets コレクションに追加します。

構文

.OpenRecordset(NameTypeOptionsLockEdit)

Connection オブジェクトを表す変数です。

パラメーター

名前

必須かどうか

データ型

説明

名前

必須

文字列型 (String)

新しい Recordset のレコードの取得元です。 テーブル名、クエリ名、またはレコードを返す SQL ステートメントを指定できます。 Microsoft Access データベース エンジンのデータベースに含まれるテーブル タイプの Recordset オブジェクトの場合は、テーブル名でのみ指定できます。

Type

省略可能

Variant

開く Recordset の型を示す RecordsetTypeEnum 定数。

: タイプを指定せずに Recordset を Microsoft Access ワークスペースで開くと、可能な場合は OpenRecordset はテーブルタイプの Recordset を作成します。 If you specify a linked table or query, OpenRecordset creates a dynaset-type Recordset.

オプション

省略可能

Variant

新しい Recordset の特性を指定する RecordsetOptionEnum 定数の組み合わせ。

: 定数 dbConsistentdbInconsistent は互いに排他的なので、この 2 つを同時に使用するとエラーになります。 オプションで dbReadOnly 定数を使用する場合に lockedits 引数を指定すると、エラーも発生します。

LockEdit

省略可能

Variant

Recordset のロックを決定する LockTypeEnum 定数。

: dbReadOnly を Options 引数または Lockedits 引数のどちらか一方で使用することはできますが、両方で使用することはできません。 両方の引数で使用すると、実行時エラーが発生します。

戻り値

Recordset

注釈

通常、ユーザーがレコードを更新中にこのエラーが発生した場合は、フィールドの内容を更新して、新たに変更された値を取得するコードを記述します。 レコードを削除中にこのエラーが発生した場合は、新しいレコード データと、そのデータが最近変更されたことを示すメッセージをユーザーに表示するという方法もあります。 この時点で、レコードを削除するかどうかの確認をユーザーに求めることができます。

IDENTITY 列を持つ Microsoft SQL Server 6.0 以降のテーブルに対して Microsoft Access データベース エンジンが接続された ODBC ワークスペースの Recordset を開く場合は、dbSeeChanges 定数も使用する必要があり、使用しないとエラーが生じます。

ODBC データ ソースで複数の Recordset を開こうとすると、 OpenRecordset に対する前の呼び出しで接続がビジー状態となるため、失敗する場合があります。 これを回避する方法の 1 つは、 Recordset を開いた直後に、 MoveLast メソッドを使用して Recordset の末尾までデータを読み込むことです。

Close メソッドを使用して Recordset を閉じると、そのレコードセットは自動的に Recordsets コレクションから削除されます。

注:

source が非整数値と連結された文字列で構成される SQL ステートメントを参照し、システム パラメーターで米国以外を指定する場合。コンマなどの 10 進文字 (strSQL = "PRICE > " & lngPrice、lngPrice = 125,50 など) は、Recordset を開こうとするとエラーが発生します。 連結時に数値がシステムの既定の小数点の記号を使って文字列に変換されますが、SQL で小数点の記号として使用できるのはピリオドのみになるからです。