However most people, and applications, don't operate on the results as a set. Instead they work on the results in a sequential order. In order to facilitate this movement one uses an ADO cursor . A cursor keeps track of which record you are currently at in the recordset. Different types of cursors allow different types of actions.
Some cursors allow only movement forwards.
As mentioned above, each cursor type allows different types of operations. The more sophisticated the cursor the more work Jet, and ADO have to do in order to keep track of the records in the Recordset. By this, I mean that performing operations like writing out the records in the recordset take twice as long using an adOpenStatic cursor compared to an adOpenForwardOnly cursor. It allows only forwards movement. If you try to move backwards using this cursor, the recordset is closed, and the query re-executed.