CursorType Property

Indicates the type of cursor used in a Recordset object.

Settings and Return Values

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.

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. 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.

Applies To

Recordset

See Also

Supports