我是个新手,我都快没分了。哈哈,逮到个相对简单的问题蹭点分数先。谢谢这位朋友。哈哈。 一般数据库中我们都设置有ID字段,那个ID字段是每新增一个记录就自动+1,那都是设为主键,自然是不重复的索引,所以那个ID是唯一标识的。一般我们要引用哪个记录做操作,有这个ID作为搜索就能满足要求了。 当然如果你的需要很另类,你需要的是绝对行号,就如Excel表格中那样一行一行的,你要获得那个行号。那么用我上句说的方法去直接读取那条记录的ID字段的话就不对了,因为用户总有对数据库做删除操作过的啊,那么那个ID字段的数据就要断号的情况了。这样也简单,你先对数据库做了查询后(一般我们都是要作排序查询的),然后代码如下:Dim Rs1 As New ADODB.Recordset Dim i As Integer '声明为长整型 If Rs1.State <> adStateClosed Then Rs1.Close '如果Rs1不是关闭的,那么就关闭它。 Rs1.Open sql, Cnn, adOpenKeyset, adLockReadOnly '打开键集类型游标,只读 If Rs1.RecordCount > 0 Then 'RecordCount 属性(ADO):指示 Recordset 对象中记录的当前数目。返回长整型值。 Rs1.MoveFirst '到第1条记录 Do While Rs1.EOF = False '循环语句 i=i+1 '哈哈,这个i就是要求的行号了,开始是0,第1遍循环时(即Rs1中第1条记录)是1,第遍是2…这样i就是Rs1中的绝对行号了。 if Rs1.Fields("字段名")="某值" then Label1=i '条件判断你需要的那条记录,那么返回那条记录的行号i。哈哈搞定。 Loop End If 兄弟,我说的够详细了的吧,哈哈,给分吧。咱穷哥们的水平也有限,别人热心的帮助我,我有机会也当会老师,哈哈,过瘾。
补充一下: Do While Rs1.EOF = False '循环语句 i=i+1 '哈哈,这个i就是要求的行号了,开始是0,第1遍循环时(即Rs1中第1条记录)是1,第遍是2…这样i就是Rs1中的绝对行号了。 if Rs1.Fields("字段名")="某值" then Label1=i '条件判断你需要的那条记录,那么返回那条记录的行号i。哈哈搞定。 Exit Do '退出循环语句。既然获得这个记录的行号值了那么就终止循环语句吧,以免浪费系统资源。 end if Loop
一般数据库中我们都设置有ID字段,那个ID字段是每新增一个记录就自动+1,那都是设为主键,自然是不重复的索引,所以那个ID是唯一标识的。一般我们要引用哪个记录做操作,有这个ID作为搜索就能满足要求了。
当然如果你的需要很另类,你需要的是绝对行号,就如Excel表格中那样一行一行的,你要获得那个行号。那么用我上句说的方法去直接读取那条记录的ID字段的话就不对了,因为用户总有对数据库做删除操作过的啊,那么那个ID字段的数据就要断号的情况了。这样也简单,你先对数据库做了查询后(一般我们都是要作排序查询的),然后代码如下:Dim Rs1 As New ADODB.Recordset
Dim i As Integer '声明为长整型
If Rs1.State <> adStateClosed Then Rs1.Close '如果Rs1不是关闭的,那么就关闭它。
Rs1.Open sql, Cnn, adOpenKeyset, adLockReadOnly '打开键集类型游标,只读
If Rs1.RecordCount > 0 Then 'RecordCount 属性(ADO):指示 Recordset 对象中记录的当前数目。返回长整型值。
Rs1.MoveFirst '到第1条记录
Do While Rs1.EOF = False '循环语句
i=i+1 '哈哈,这个i就是要求的行号了,开始是0,第1遍循环时(即Rs1中第1条记录)是1,第遍是2…这样i就是Rs1中的绝对行号了。
if Rs1.Fields("字段名")="某值" then Label1=i '条件判断你需要的那条记录,那么返回那条记录的行号i。哈哈搞定。
Loop
End If 兄弟,我说的够详细了的吧,哈哈,给分吧。咱穷哥们的水平也有限,别人热心的帮助我,我有机会也当会老师,哈哈,过瘾。
Do While Rs1.EOF = False '循环语句
i=i+1 '哈哈,这个i就是要求的行号了,开始是0,第1遍循环时(即Rs1中第1条记录)是1,第遍是2…这样i就是Rs1中的绝对行号了。
if Rs1.Fields("字段名")="某值" then
Label1=i '条件判断你需要的那条记录,那么返回那条记录的行号i。哈哈搞定。
Exit Do '退出循环语句。既然获得这个记录的行号值了那么就终止循环语句吧,以免浪费系统资源。
end if
Loop
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update 更新数据表记录