Dim conn As Connection
Dim rs As Recordset
Set conn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
Dim SQL As String
SQL = "select tName,tPhone,tSum,tDate from t_basic where tInvoice = '" & sInvoice.Text & "'"conn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdbPath & ";Persist Security Info=False;Jet OLEDB:Database Password=abc123"
rs.Open SQL, conn, 1, 1, 1
Set DataGrid1.DataSource = rs
DataGrid1.ClearFields
DataGrid1.ReBind
运行结果出现"不能初始化数据绑定"这是怎么回事?
网上查了下大多是说几个组件注册一下,我全部注册过了还是没用还有个问题
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
这个应该是不能加在后面的吧?否则会使DataGrid1内的数据失效
那程序关闭是rs和conn会自动关闭吗?

解决方案 »

  1.   

    加上这一句 
    conn.CursorLocation = adUseClient
    试试
      

  2.   

    下面两句可以qudiao
    DataGrid1.ClearFields
    DataGrid1.ReBindrs.Close
    Set rs = Nothing
    conn.Close
    Set conn = Nothing
    这个应该是不能加在后面的,否则会使DataGrid1内的数据失效
    程序关闭是rs和conn会自动关闭
      

  3.   

    谢谢楼上两位。。还有个问题。。
    如果这些代码是放在一个Button1_Click的事件中
    然后我不关闭程序直接再按一下Button1进行另一次sql查询的话,原来的rs和conn会怎么样?
      

  4.   

    会出错
    可以把
    Dim conn As Connection
    Dim rs As Recordset
    Set conn = CreateObject("adodb.connection")
    Set rs = CreateObject("adodb.recordset")改成:Dim conn As New Adodb.Connection
    Dim rs As New Adodb.Recordset就不会出错
      

  5.   

    还有一个问题请教大胡子:目前遇到就是不能够连续查询,如果连续查询提示错误如下:Run-time error 3705 对象打开时,不允许操作。我分析出错原因是第一次查询时候已经打开了,但是并没有关闭,所以导致问如何关闭,我把rs.Close
    Set rs = Nothing
    conn.Close
    Set conn = Nothing语句加上后,确实使DataGrid1内的数据失效,请教是否有办法关掉,然后允许我多次连续查询啊?谢谢