各位同仁,是否遇到过类似情况?

tfy_002 2004-01-15 03:30:06

我定义一个记录集rs,通过按钮对其浏览,发现其首记录不是第一条记录,而是条空记录,而未记录不是最后一条记录,也是空记录?如果在第一条记录时,上移按钮为失效状态,如果在最后一条记录下移按钮为失效状态,不知大家有没有好的解决方案?谢谢!!!

例如:

有没有确定当前记录的序号函数?
...全文
47 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tfy_002 2004-01-15
  • 打赏
  • 举报
回复


谢谢大家,我已经结贴,也许结分系统原因,只是没有显示出来!!谢谢!

问题已解决!!
qingming81 2004-01-15
  • 打赏
  • 举报
回复
在N=rs.absoluteposition 之前加上
dim N as long
qingming81 2004-01-15
  • 打赏
  • 举报
回复
刚才调试了一下应改代码如下
option explicit
dim withevents rs as recordset
Private Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, _
ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, _
ByVal pRecordset As ADODB.Recordset)

N = rs.AbsolutePosition
If N = 1 Then
cmdPrevious.Enabled = False
ElseIf N = rs.RecordCount Then
cmdNext.Enabled = False
Else
cmdPrevious.Enabled = True
cmdNext.Enabled = True
End If

end sub
zhizhi625 2004-01-15
  • 打赏
  • 举报
回复
试一下:
Dim rst As New ADODB.Recordset
Dim conn As New ADODB.Connection
dim number as integer
conn.Open "dsn=data"
rst.CursorLocation = adUseClient '这句必修有!
rst.Open "select * from weborder", conn
number = rst.AbsolutePosition 'recordset的一个属性


qingming81 2004-01-15
  • 打赏
  • 举报
回复
你还得定义rs为withevents
即在程序最前面定义为
dim withevents rs as Recordset

然后在rs_movecomplete事件中写上述代码!
LichKingSZ 2004-01-15
  • 打赏
  • 举报
回复
不应这样理解,不是说第一条记录是空记录,而是RS是在BOF状态,最后一条记录也不是空记录,而是EOF状态。可以这样判断:
if rs.bof then cmdup.enabled=false
if rs.eof then cmdnext.enabled=false
qingming81 2004-01-15
  • 打赏
  • 举报
回复
可以取绝对位置
if rs.absoluteposition =0 then
cmdPrevious.enabled=false
elseif rs.absoluteposition= (rs.recordcount-1)
cmdnext.enabled=false
end if

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧