>CursorType Property

Indicates the type of cursor used in a Recordset object.

Settings and Return Values

Sets or returns a Long value equal to one of the following constants:

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.

Remarks

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. To verify specific functionality of the returned cursor, use the Supports method.

The following chart shows the functionality of each cursor type with respect to the Supports method constants.

CursorType

Supports

adOpenForwardOnly

adAddNew, adDelete, adUpdate, adUpdateBatch

adOpenKeyset

adAddNew, adDelete, adMovePrevious, adUpdate, adUpdateBatch

adOpenDynamic

adAddNew, adBookmark, adDelete, adHoldRecords, adMovePrevious, adResync, adUpdate, adUpdateBatch

adOpenStatic

adAddNew, adBookmark, adDelete, adHoldRecords, adMovePrevious, adResync, adUpdate, adUpdateBatch

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.