请看下面有何不同:
(1):
Dim ConnStr As String, SQL As String
    ConnStr = "Provider=Microsoft.Jet.OLEDB.3.51;" & "Persist Security Info=False;" & "Data Source=" & App.Path & "\data.mdb;"
    conn.Open ConnStr
    rs.CursorLocation = adUseClient
    SQL = "select * from 成绩表"
    rs.Open SQL, conn, adOpenKeyset, adLockPessimistic '第一例采用打开方法
    Set DataGrid1.DataSource = rs
    执行能成功!
(2)
Dim ConnStr As String, SQL As String
    ConnStr = "Provider=Microsoft.Jet.OLEDB.3.51;" & "Persist Security Info=False;" & "Data Source=" & App.Path & "\data.mdb;"
    conn.Open ConnStr
    rs.CursorLocation = adUseClient
    SQL = "select * from 成绩表"
    cmd.ActiveConnection = conn
    cmd.CommandText = SQL
    Set rs = cmd.Execute '第二例采用打开方法
    Set dgdRecord.DataSource = rs '/******Error****/
出现:实时错误7004,行集合不能作为标签。
    执行失败!
你知道为什么吗?

解决方案 »

  1.   

    采用 set rs=conn.Execute(sql)也不行!
      

  2.   

    Execute 方法 会改变游标引擎CursorLocation 为 adUseServer 
      

  3.   

    哪有什么方法,能将游标引擎CursorLocation 改回为 adUseClient!Set rs = cmd.Execute 
    rs.CursorLocation = adUseClient
      

  4.   

    使用Execute的时候会改变游标引擎CursorLocation 为 adUseServer ,需要重新链接!