分享

VBA宏: adodb.RecordSet的属性和方法

 昵称2548375 2018-09-29

为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据:

  rs = Server.CreateObject("ADODB.RecordSet")

  rs.Open(sqlStr,conn,1,A)

  注:A=1表示读取数据;A=3表示新增、修改或删除数据。

 

  在RecordSet组件中,常用的属性和方法有:

  rs.Fields.Count:RecordSet对象字段数。

  rs(i).Name:第i个字段的名称,i为0至rs.Fields.Count-1

  rs(i):第i个字段的数据,i为0至rs.Fields.Count-1

  rs("字段名"):指定字段的数据。

  rs.Record.Count:数据记录总数。

  rs.EOF:是否最后一条记录。

  rs.MoveFirst:指向第一条记录。

  rs.MoveLast:指向最后一条记录。

  rs.MovePrev:指向上一条记录。

  rs.MoveNext:指向下一条记录。

  rs.GetRows:将数据放入数组中。

  rs.Properties.Count:ADO的ResultSet或Connection的属性个数。

  rs.Properties(item).Name:ADO的ResultSet或Connection的名称。

  rs.Properties:ADO的ResultSet或Connection的值。

  rs.close():关闭连接。

使用ADO连接数据库进行查询的时候,数据库将查询结果返回查询端,在查询端的内存里面就会有一个列表,这个列表存放的就是查询的结果。这个内存中的列表就是数据集。在你的程序里面rs就是表示这个数据集。bof表示rs当前的指针是指在了数据集的前面,比如数据集里面有编号为1,2,3,4的4条记录,但是rs指向的编号是-1,这样就会符合了bof的情况。同理,当rs的指针指向5,而第五条记录并不存在,这样就会产生了eof的情况。

如果同时产生了bof和aof的情况,就是说rs的指针既在上界之外也在下届之外,这样只有一种情况,就是rs所代表的数据集是空的,这样rs的指针无论是指到什么地方都是同时具有bof和eof的属性。

你的情况估计是sql语句查询出来的值是空的,因此数据集也是空的,在读取rs数据集里面的值的时候就会报这个错误。
使用 if rs.bof and rs.eof then 这个判断可以判别rs里面是否有没有数据集,如果符合这个条件,说明数据集是空的,在程序中就要绕开对rs里字段的访问

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多