'声名
Dim conn       As New ADODB.Connection
Dim rs         As New ADODB.Recordset'代码
’连接数据库
Dim strstr = App.PathIf Right(str, 1) <> "\" Thenstr = str + "\"End Ifstr = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & str & "\dsystem.mdb"conn.Open strrs.CursorLocation = adUseClientrs.Open "xt", conn, adOpenKeyset, adLockPessimistic
rs.Close
'显示全部内容
Dim rs1         As New ADODB.Recordset
rs1.CursorLocation = adUseClient
rs1.Open "select * from xt", conn, adOpenKeyset, adLockReadOnly    Set DataGrid1.DataSource = rs1
    DataGrid1.Refresh
这段程序是我在网上找的一个简单数据库连接程序的部分内容,在他的程序里能正常使用,到我这里,就出错,错误在“显示全部内容里”的“Set DataGrid1.DataSource = rs1”这一句上, 
错误提示:“实时错误91   对象变量或with块变量未设置”,点了结束后又提示“运行时错误440,应用程序定义或对象定义错误”
有哪位能给解释下原因啊?
刚刚学用这种方式连接数据库,原来都是直接用VB加ACCESS加DATA进行数据管理

解决方案 »

  1.   

    Set DataGrid1.DataSource = rs1
        DataGrid1.Refresh他用的是DATAGRID控件
    我用的是MSFLEXGRID控件
    是不是这方面的原因么?
      

  2.   

    这样试试:
    1,  OLEDB.3.51改成OLEDB.4.0
    2,   rs.Open "xt", conn, adOpenKeyset, adLockPessimistic
    改成  rs.Open "select * from xt", conn, adOpenKeyset, adLockPessimistic
      

  3.   

    呵呵,问题解决了。
    原来就是使用的控件的事。
    MSFlexGrid控件是捆绑DAO的,
    MSHFlexGrid控件才是捆绑ADO的。
    改用 MSHFlexGrid后,调试通过。
    谢谢leftie的热心帮忙!