Recordset オブジェクト (ADO)Recordset Object (ADO)

ベース テーブル、またはコマンドの実行の結果からレコードのセット全体を表します。Represents the entire set of records from a base table or the results of an executed command. いつでもでも、 Recordsetオブジェクトとして現在のレコード セット内で 1 つのレコードのみを参照します。At any time, the Recordset object refers to only a single record within the set as the current record.

コメントRemarks

使用するRecordsetプロバイダーからデータを操作するオブジェクト。You use Recordset objects to manipulate data from a provider. ほぼすべてを使用してデータを操作する ADO を使用して、 Recordsetオブジェクト。When you use ADO, you manipulate data almost entirely using Recordset objects. すべてRecordsetオブジェクトから成るレコード (行) とフィールド (列)。All Recordset objects consist of records (rows) and fields (columns). プロバイダーによってサポートされている機能に応じていくつかRecordsetメソッドまたはプロパティを使用できない可能性があります。Depending on the functionality supported by the provider, some Recordset methods or properties may not be available.

ADODB します。レコード セットが作成するために使用する必要があります、ProgID、 Recordsetオブジェクト。ADODB.Recordset is the ProgID that should be used to create a Recordset object. 古い ADOR を参照する既存のアプリケーション。レコード セットの ProgID を再コンパイルせずに作業が続行されますが、新しい開発は、ADODB を参照する必要があります。レコード セット。Existing applications that reference the outdated ADOR.Recordset ProgID will continue to work without recompiling, but new development should reference ADODB.Recordset.

ADO で定義されている 4 つのカーソルの種類があります。There are four different cursor types defined in ADO:

  • 動的カーソル内の移動のすべての種類は、表示、追加、変更、および他のユーザーによって削除することができます、 Recordsetブックマーク; に依存しないし、プロバイダーがサポートしている場合は、ブックマークを使用します。します。Dynamic cursor Allows you to view additions, changes, and deletions by other users; allows all types of movement through the Recordset that doesn't rely on bookmarks; and allows bookmarks if the provider supports them.

  • キーセット カーソルBehaves ことが表示されないレコード他のユーザーはその点を除いて、動的カーソルなどの追加、およびその他のユーザーを削除するレコードにアクセスできなくなります。Keyset cursor Behaves like a dynamic cursor, except that it prevents you from seeing records that other users add, and prevents access to records that other users delete. 他のユーザーによるデータの変更も表示されます。Data changes by other users will still be visible. 常にブックマークをサポートし、により、すべての種類内の移動のため、 Recordsetします。It always supports bookmarks and therefore allows all types of movement through the Recordset.

  • 静的カーソル一連のレコードを使用してデータを検索またはレポートを生成するための静的コピーを提供します; ブックマークは常に許可し、したがってすべての種類内の移動のでは、 Recordsetします。Static cursor Provides a static copy of a set of records for you to use to find data or generate reports; always allows bookmarks and therefore allows all types of movement through the Recordset. 追加、変更、または他のユーザーによって削除は表示されません。Additions, changes, or deletions by other users will not be visible. これは、唯一の種類のクライアント側を開いたときに許可されているカーソルRecordsetオブジェクト。This is the only type of cursor allowed when you open a client-side Recordset object.

  • 順方向専用カーソルを前方スクロールのみすることができます、 Recordsetします。Forward-only cursor Allows you to only scroll forward through the Recordset. 追加、変更、または他のユーザーによって削除は表示されません。Additions, changes, or deletions by other users will not be visible. これを単一のパスのみを作成する必要がある状況でパフォーマンスが向上するレコード セットします。This improves performance in situations where you need to make only a single pass through a Recordset.

設定、 CursorTypeプロパティを開始する前に、レコード セット、カーソルの種類を選択するか、渡す、 CursorType引数をを開くメソッド。Set the CursorType property prior to opening the Recordset to choose the cursor type, or pass a CursorType argument with the Open method. 一部のプロバイダーは、すべてのカーソルの種類でサポートされていません。Some providers don't support all cursor types. プロバイダーのマニュアルを確認します。Check the documentation for the provider. カーソルの種類を指定しない場合、ADO は、既定で順方向専用カーソルを開きます。If you don't specify a cursor type, ADO opens a forward-only cursor by default.

場合、 CursorLocationプロパティに設定されてadUseClientを開く、 RecordsetUnderlyingValue プロパティフィールドオブジェクトが返されたでご利用いただけませんRecordsetオブジェクト。If the CursorLocation property is set to adUseClient to open a Recordset, the UnderlyingValue property on Field objects is not available in the returned Recordset object. 作成することができます (OLE DB と組み合わせてで Microsoft SQL Server 用 Microsoft ODBC プロバイダー) などの一部のプロバイダーを併用すると、 Recordset以前に定義されたとは無関係にオブジェクト接続オブジェクトとの接続文字列を渡すことによって、オープンメソッド。When used with some providers (such as the Microsoft ODBC Provider for OLE DB in conjunction with Microsoft SQL Server), you can create Recordset objects independently of a previously defined Connection object by passing a connection string with the Open method. ADO が作成されますが、接続オブジェクトが、オブジェクト変数にそのオブジェクトを割り当てていません。ADO still creates a Connection object, but it doesn't assign that object to an object variable. ただし、複数開いている場合Recordset 、同じ接続経由でオブジェクトを明示的に作成し、開く必要があります、接続オブジェクトこの割り当て、接続。オブジェクト変数にオブジェクト。However, if you are opening multiple Recordset objects over the same connection, you should explicitly create and open a Connection object; this assigns the Connection object to an object variable. 開くときに、このオブジェクトの変数を使用しないかどうか、レコード セットオブジェクトの場合、ADO が新たに作成接続ごとに新しいオブジェクトRecordset同じを渡す場合にも、接続文字列。If you do not use this object variable when opening your Recordset objects, ADO creates a new Connection object for each new Recordset, even if you pass the same connection string.

数だけ作成できますRecordsetに応じてオブジェクトします。You can create as many Recordset objects as needed.

開くと、レコード セット、最初のレコードを現在のレコードが配置されている (該当する場合)、 BOFEOFプロパティに設定されますFalse.When you open a Recordset, the current record is positioned to the first record (if any) and the BOF and EOF properties are set to False. レコードがない場合、 BOFEOFプロパティの設定はTrueします。If there are no records, the BOF and EOF property settings are True.

使用することができます、 MoveFirstMoveLastMoveNext、およびMovePreviousメソッドは、移動メソッド。およびAbsolutePositionAbsolutePage、およびフィルタープロパティ プロバイダーが、関連するサポートするいると仮定すると、現在のレコードの位置を変更するには機能。You can use the MoveFirst, MoveLast, MoveNext, and MovePrevious methods; the Move method; and the AbsolutePosition, AbsolutePage, and Filter properties to reposition the current record, assuming the provider supports the relevant functionality. 順方向専用Recordsetオブジェクトのみをサポート、 MoveNextメソッド。Forward-only Recordset objects support only the MoveNext method. 使用する場合、移動各レコードにアクセスする方法 (または列挙、レコード セット)、使用することができます、 BOFEOFプロパティ先頭または末尾のを超えて移動したかどうかの判断、 Recordsetします。When you use the Move methods to visit each record (or enumerate the Recordset), you can use the BOF and EOF properties to determine if you've moved beyond the beginning or end of the Recordset.

機能を使用する前に、 Recordsetオブジェクトを呼び出す必要があります、サポート機能がサポートされているか使用可能であることを確認するオブジェクトのメソッド。Before using any functionality of a Recordset object, you must call the Supports method on the object to verify that the functionality is supported or available. 機能を使用する必要があるときに、サポートメソッドが false を返します。You must not use the functionality when the Supports method returns false. たとえば、使用することができます、 MovePreviousメソッド場合にのみRecordset.Supports(adMovePrevious)返しますTrueします。For example, you can use the MovePrevious method only if Recordset.Supports(adMovePrevious) returns True. それ以外の場合、エラーが発生する、ため、 Recordsetオブジェクトが閉じられている可能性があり、インスタンスで使用できなくなった機能が表示されます。Otherwise, you will get an error, because the Recordset object might have been closed and the functionality rendered unavailable on the instance. 興味のある機能がサポートされていない場合サポートも false に戻ります。If a feature you are interested in is not supported, Supports will return false as well. 対応するプロパティまたはメソッドの呼び出しを避ける必要があります、ここで、 Recordsetオブジェクト。In this case, you should avoid calling the corresponding property or method on the Recordset object.

レコード セットオブジェクトは、2 種類の更新をサポートできます: イミディ エイト ウィンドウとバッチ処理します。Recordset objects can support two types of updating: immediate and batched. 即時更新では、データに対するすべての変更直ちに書き込まれます、基になるデータ ソースを呼び出すと、 Updateメソッド。In immediate updating, all changes to data are written immediately to the underlying data source once you call the Update method. パラメーターとして値の配列を渡すことも、 AddNew更新メソッドを同時に、レコード内のいくつかのフィールドを更新します。You can also pass arrays of values as parameters with the AddNew and Update methods and simultaneously update several fields in a record.

1 つ以上のレコードへの変更をキャッシュし、使用してデータベースに 1 回の呼び出しで送信するプロバイダーはプロバイダーでは、バッチ更新をサポートする場合、 UpdateBatchメソッド。If a provider supports batch updating, you can have the provider cache changes to more than one record and then transmit them in a single call to the database with the UpdateBatch method. これに加えられた変更を適用されます、 AddNewUpdate、および削除メソッド。This applies to changes made with the AddNew, Update, and Delete methods. 呼び出した後、 UpdateBatchメソッドが使用できる、状態それらを解決するために、データの競合を確認するプロパティ。After you call the UpdateBatch method, you can use the Status property to check for any data conflicts in order to resolve them.

注意

クエリの実行を使用せずに、コマンドオブジェクト、クエリ文字列を渡す、オープンのメソッド、レコード セットオブジェクト。To execute a query without using a Command object, pass a query string to the Open method of a Recordset object. ただし、コマンドコマンド テキストを保持し、再実行するか、またはクエリ パラメーターを使用する場合は、オブジェクトが必要です。However, a Command object is required when you want to persist the command text and re-execute it, or use query parameters.

モードプロパティへのアクセス権限を制御します。The Mode property governs access permissions.

フィールドコレクションがの既定のメンバー、 Recordsetオブジェクト。The Fields collection is the default member of the Recordset object. その結果、次の 2 つのコード ステートメントは同等です。As a result, the following two code statements are equivalent.

Debug.Print objRs.Fields.Item(0)  ' Both statements print   
Debug.Print objRs(0)              '  the Value of Item(0).  

ときに、レコード セットのみ、プロセス間でオブジェクトが渡される、行セット値は、マーシャ リングとのプロパティ、レコード セットオブジェクトは無視されます。When a Recordset object is passed across processes, only the rowset values are marshalled, and the properties of the Recordset object are ignored. います、中に、行セット、新しく作成されたにアンパックレコード セットオブジェクトで、既定値にもそのプロパティを設定します。During unmarshalling, the rowset is unpacked into a newly created Recordset object, which also sets its properties to the default values.

Recordsetオブジェクトがスクリプトを実行します。The Recordset object is safe for scripting.

このセクションには、次のトピックが含まれています。This section contains the following topic.

関連項目See Also

接続オブジェクト (ADO) Connection Object (ADO)
フィールド コレクション (ADO) Fields Collection (ADO)
Properties コレクション (ADO) Properties Collection (ADO)
付録 A: プロバイダーAppendix A: Providers