Indicates the type of cursor used in a Recordset object.
Sets or returns one of the following CursorTypeEnum values:
Constant |
Value |
Description |
adOpenForwardOnly |
0 |
Forward-only cursor. Identical to a static cursor except that you can only scroll forward through records. This improves performance in situations when you only need to make a single pass through a recordset. (Default.) |
adOpenKeyset |
1 |
Keyset cursor. Like a dynamic cursor, except that you can't see records that other users add, although records that other users delete are inaccessible from your recordset. Data changes by other users are still visible. |
adOpenDynamic |
2 |
Dynamic cursor. Additions, changes, and deletions by other users are visible, and all types of movement through the recordset are allowed, except for bookmarks if the provider doesn't support them. |
adOpenStatic |
3 |
Static cursor. A static copy of a set of records that you can use to find data or generate reports. Additions, changes, or deletions by other users are not visible. |
Use the CursorType property to specify the type of cursor that should be used when opening the Recordset object. The CursorType property is read/write when the recordset is closed and read-only when it is open.
If a provider does not support the requested cursor type, the provider may return another cursor type. The CursorType property will change to match the actual cursor type in use when the Recordset object is open. To verify specific functionality of the returned cursor, use the Supports method. After you close the Recordset, the CursorType property reverts to its original setting.
The following chart shows the functionality of each cursor type with respect to the Supports method constants.
CursorType |
Supports |
adOpenForwardOnly |
none |
adOpenKeyset |
adBookmark, adHoldRecords, adMovePrevious, adResync |
adOpenDynamic |
adMovePrevious |
adOpenStatic |
adBookmark, adHoldRecords, adMovePrevious, adResync |
Note Although Supports(adUpdateBatch) may be true for dynamic and forward-only cursors, you should use batch updating only with either a keyset or static cursor.