我在access的一个表的一个字段中搜索符合条件的记录,找到之后就把主键记录下来,但在以后需要用到这些记录时怎么才能把它们找到呢?我用Recordset.find找,但只能向前找,如果记录在当前指针的后面就找不到了,请问怎么解决.

解决方案 »

  1.   

    Recordset.find有个参数可以设置查找方向
    adSearchForward 或者 adSearchBackward
    或者你也可以默认一个方向如向后,然后每次查找时调用Recordset.movefirst
      

  2.   

    使用 MoveFirst 方法将当前记录位置移动到 Recordset 中的第一个记录。使用 MoveLast 方法将当前记录位置移动到 Recordset 中的最后一个记录。Recordset 对象必须支持书签或向后光标移动;否则调用该方法将产生错误。使用 MoveNext 方法将当前记录向前移动一个记录(向 Recordset 的底部)。如果最后一个记录是当前记录并且调用 MoveNext 方法,则 ADO 将当前记录设置到 Recordset (EOF 为 True)的尾记录之后。当 EOF 属性已经为 True 时试图向前移动将产生错误。使用 MovePrevious 方法将当前记录位置向后移动一个记录(向记录集的顶部)。Recordset 对象必须支持书签或向后游标移动;否则方法调用将产生错误。如果首记录是当前记录并且调用 MovePrevious 方法,则 ADO 将当前记录设置在 Recordset (BOF 为 True)的首记录之前。而 BOF 属性为 True 时向后移动将产生错误。如果 Recordset 对象不支持书签或向后游标移动,则 MovePrevious 方法将产生错误。如果记录集是仅向前的,但是用户希望支持向前和向后滚动,则可以使用 CacheSize 属性创建记录缓存,通过 Move 方法支持向后游标移动。由于缓存记录是加载到内存中的,所以应避免不必要地缓存太多记录。可以调用仅向前 Recordset 对象的 MoveFirst 方法;这样做可使提供者重新执行生成 Recordset 对象的命令。