Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQl As StringPrivate Sub Form_Load()
 cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\电子期刊查询.mdb"strSQl = "select * from 作者表 "rs.Open strSQl, cn, adOpenDynamic, adLockOptimistic
If Not rs.EOF And Not rs.BOF Then
        txtName= rs!作者名
Else
        MsgBox "没有找到作者的记录"
        rs.Close
        Exit Sub
End If
rs.close
End SubPrivate Sub cmdNext_Click()
End sub
问题:我想点按钮cmdNext的时候叫txtName显示下一个作者,怎么办?

解决方案 »

  1.   

    把End If和End Sub之间的rs.close去掉
    Private Sub cmdNext_Click()
        rs.movenext
        txtName= rs!作者名
    End sub
      

  2.   

    两个rs.close去掉,如果不去掉,就是你已经关闭了你打开的记录,所以你就不能看到结果。
    去掉后。
    Private Sub cmdNext_Click()
       if rs.eof then
           rs.movelast
       elseif rs.bof then
           rs.movefirst
       else
           rs.movenext       
       end if
       txtname.text=iif(isnull(rs.fields("作者名").value),"",rs.fields("作者名").value)
    End sub
      

  3.   

    代码修改如下Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim strSQl As StringPrivate Sub Form_Load()
     cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\电子期刊查询.mdb"strSQl = "select * from 作者表 "rs.Open strSQl, cn, adOpenDynamic, adLockOptimistic
    If Not rs.EOF And Not rs.BOF Then
            txtName= rs!作者名
    Else
            MsgBox "没有找到作者的记录"
            rs.Close
            Exit Sub
    End IfEnd SubPrivate Sub cmdNext_Click()
        If rs.EOF Then
            rs.MoveLast
            txtName= rs!作者名
        Else
            rs.MoveNext
            If rs.EOF Then
                rs.MoveLast
                txtName= rs!作者名
            Else
                txtName= rs!作者名
            End If
        End If
    End sub
      

  4.   

    代码修改如下Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim strSQl As StringPrivate Sub Form_Load()
     cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\电子期刊查询.mdb"strSQl = "select * from 作者表 "rs.Open strSQl, cn, adOpenDynamic, adLockOptimistic
     
    If Not rs.EOF And Not rs.BOF Then
            txtName= rs!作者名
    Else
            MsgBox "没有找到作者的记录"
            rs.Close
            Exit Sub
    End IfEnd SubPrivate Sub cmdNext_Click()
        If rs.EOF Then
            rs.MoveLast
            txtName= rs!作者名
            cmdnext.enable=false
        Else
            rs.MoveNext
            If rs.EOF Then
                rs.MoveLast
                txtName= rs!作者名
                cmdnext.enable=false
            Else
                txtName= rs!作者名
            End If
        End If
    End sub