VB中如何读取数据库中的下一条数据
PrivateSubCommand1_Click()DimsqlAsStringDimConnAsNewADODB.ConnectionDimRsAsNewADODB.R...
Private Sub Command1_Click()
Dim sql As String
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset '定义连接数据库的属性变量
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;"""
sql = "Select * From [单选题] " ' 提取数据库的数据
Rs.Open sql, Conn
Label1.Caption = Rs("编号") & Rs("题目")
Conn.Close
End Sub
这个是我连接数据库的内容,只能读取到第一天。我想按一个按钮读取下一条。怎么弄?请教
其他的我解决了。现在就是。当显示为第一条或者最后一天数据的时候,我按一下上一条或者下一条的时候,会出现错误的
3021错误,就是本来显示是数据库中的第一条了,然后我再安了一次 rs.MovePrevious 的,由于上面没记录(因为是最前面一条了),就弹出3021错误,这个错误如何避免掉,或者让VB自己把它忽视掉? 展开
Dim sql As String
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset '定义连接数据库的属性变量
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;"""
sql = "Select * From [单选题] " ' 提取数据库的数据
Rs.Open sql, Conn
Label1.Caption = Rs("编号") & Rs("题目")
Conn.Close
End Sub
这个是我连接数据库的内容,只能读取到第一天。我想按一个按钮读取下一条。怎么弄?请教
其他的我解决了。现在就是。当显示为第一条或者最后一天数据的时候,我按一下上一条或者下一条的时候,会出现错误的
3021错误,就是本来显示是数据库中的第一条了,然后我再安了一次 rs.MovePrevious 的,由于上面没记录(因为是最前面一条了),就弹出3021错误,这个错误如何避免掉,或者让VB自己把它忽视掉? 展开
1个回答
展开全部
什么错呢?可否写出错误讯息!
* 有点须注意的是“第一笔”,“最后比笔”或“上一笔”须写在个别的CommandButton中。
-------------------------------------------------
'下面两行写在General(一般区域内)里面(程式最上面)
Dim sql As String
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
'在Load区域内写:
Private Sub Form_Load()
On Error Resume Next
rs.MoveFirst
Label1.Caption=Rs("编号") & Rs("题目")
End Sub
Private Sub Command1_Click()
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" ’注意开关引号和分号
sql = "Select * From 单选题" ' 单选题不放[]
rs.CursorLocation = adUseClient '加上这行鼠标位置功能
Rs.Open sql, Conn, adOpenKeyset, adLockPessimistic ’
Rs.MoveNext '下一笔资料
If Rs.BOF = False And Rs.EOF = False Then
Label1.Caption = Rs("编号") & Rs("题目")
End If
If Rs.EOF = True Then ‘若超过最后一笔资料就返回最后一笔记录。
Rs.MoveLast
End If
End Sub
-----------------------------------------------------
说明:
* EOF为 "End Of File"
* BOF为 "Begining Of File"
比如:Rs.EOF=True 意思为超过最后一笔记录。
Rs.BOF=True 意思为超过第一笔记录。
* 其他移动记录方法:
rs.MoveLast ‘最后一笔记录
rs.MoveFirst ‘第一笔记录
Rs.MovePrevious '上一笔资料
If Rs.BOF = False And Rs.EOF = False Then
Label1.Caption = Rs("编号") & Rs("题目")
End If
If Rs.BOF = True Then ‘若超过第一笔资料就返回第一笔记录。
Rs.MoveFirst
End If
* 有点须注意的是“第一笔”,“最后比笔”或“上一笔”须写在个别的CommandButton中。
-------------------------------------------------
'下面两行写在General(一般区域内)里面(程式最上面)
Dim sql As String
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
'在Load区域内写:
Private Sub Form_Load()
On Error Resume Next
rs.MoveFirst
Label1.Caption=Rs("编号") & Rs("题目")
End Sub
Private Sub Command1_Click()
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" ’注意开关引号和分号
sql = "Select * From 单选题" ' 单选题不放[]
rs.CursorLocation = adUseClient '加上这行鼠标位置功能
Rs.Open sql, Conn, adOpenKeyset, adLockPessimistic ’
Rs.MoveNext '下一笔资料
If Rs.BOF = False And Rs.EOF = False Then
Label1.Caption = Rs("编号") & Rs("题目")
End If
If Rs.EOF = True Then ‘若超过最后一笔资料就返回最后一笔记录。
Rs.MoveLast
End If
End Sub
-----------------------------------------------------
说明:
* EOF为 "End Of File"
* BOF为 "Begining Of File"
比如:Rs.EOF=True 意思为超过最后一笔记录。
Rs.BOF=True 意思为超过第一笔记录。
* 其他移动记录方法:
rs.MoveLast ‘最后一笔记录
rs.MoveFirst ‘第一笔记录
Rs.MovePrevious '上一笔资料
If Rs.BOF = False And Rs.EOF = False Then
Label1.Caption = Rs("编号") & Rs("题目")
End If
If Rs.BOF = True Then ‘若超过第一笔资料就返回第一笔记录。
Rs.MoveFirst
End If
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询