Most likely, it has something to do with the options you`re using in your ADODB.Recordset object, assuming you`re using ADO to connect to your database. This is how I open My recordsets and I can traverse through them inn any direction :

Code:
 
  strSQL = "Select * From AA WHERE Kwd_AA = 1;" 
  rsAA.CursorLocation = adUseClient
  rsAA.Open strSQL, conn_bio_tech, adOpenDynamic, adLockOptimistic
Check out some documentation for the ADODB.Recordset object for more details! Hope this helps!