Private Sub Form_Load()
On Error Resume Next
Dim conn As New adodb.Connection
Dim rs As New adodb.Recordset
Dim sql As String
connstr = "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & App.Path & "\text_old.mdb;"
conn.Open connstr
If Err.Number <> 0 Then
MsgBox ("数据库未能成功连接!" & Err.Description)
End If
sql = "select username,password from admin"
rs.Open sql, conn, adOpenDynamic, adLockBatchOptimistic
Set datalist.DataSource = rs   //提示错误 the rowset is not bookable
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
If Err.Number <> 0 Then
MsgBox ("数据显示错误!" & Err.Description)
End If
End Sub数据库能正常打开,记录也取出来了  就是不能显示在DATELIST(DATAGRID)中

解决方案 »

  1.   

    Private Sub Form_Load()
    On Error Resume Next
    Dim conn As New adodb.Connection
    Dim rs As New adodb.Recordset
    Dim sql As String
    connstr = "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & App.Path & "\text_old.mdb;"
    conn.Open connstr
    If Err.Number <> 0 Then
    MsgBox ("数据库未能成功连接!" & Err.Description)
    End If
    sql = "select username,password from admin"
    rs.CursorLocation=adUseClient'使用客户端游标
    rs.Open sql, conn, adOpenDynamic, adLockBatchOptimistic
    Set datalist.DataSource = rs
    datalist.refresh
    rs.Close
    Set rs = Nothing
    conn.Close
    Set conn = Nothing
    If Err.Number <> 0 Then
    MsgBox ("数据显示错误!" & Err.Description)
    End If
    End Sub
      

  2.   

    我的datalist是datagrid控件啊
    改为上面大哥的代码  没错误提示 但什么都不显示啊
      

  3.   

    Private Sub Form_Load()
    On Error Resume Next
    Dim conn As New adodb.Connection
    Dim rs As New adodb.Recordset
    Dim sql As String
    conn .ConnectionString = "driver={Microsoft Access Driver (*.mdb)};" & _
         "dbq=" & App.Path & "\text_old.mdb"
    conn.Open 
    If Err.Number <> 0 Then
    MsgBox ("数据库未能成功连接!" & Err.Description)
    End If
    sql = "select username,password from admin"
    rs.CursorLocation=adUseClient'使用客户端游标
    rs.Open sql, conn, adOpenDynamic, adLockBatchOptimistic
    Set datalist.DataSource = rs
    datalist.refresh
    rs.Close
    Set rs = Nothing
    conn.Close
    Set conn = Nothing
    If Err.Number <> 0 Then
    MsgBox ("数据显示错误!" & Err.Description)
    End If
    End Sub
      

  4.   

    rs.close
    Recordset被你关闭了
    Set datalist.DataSource = rs.Clone '用rs的副本
    rs.close
    datagrid控件和datalist,msflexgrid不同,不会保留副本。