我用的access数据库,连接串如下,ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb"
然后定义记录集打开表,
rs.Open "select * from table1", aConnect, adOpenKeyset, adLockOptimistic
打开方式如上,然后Set DataGrid1.DataSource = rs
当鼠标指到某记录时执行删除操作,   rs.Delete 就出错?
出错提示   实时错误‘-2147467259(80004005)’:查询过于复杂不知道为什么,我连sqlserver 就没问题,请大家帮忙解决?!

解决方案 »

  1.   

    If MsgBox("确实要删除这条记录吗?", vbExclamation + vbYesNo, "删除确认") = vbYes Then
            rsItem.Delete    'adAffectCurrent
            rsItem.Update
        End If
    说的还不清楚吗,很简单啊,这是删除代码啊SoHo_Andy(冰) 标志地段,我有一个自动加一的id啊,不重复的,
      

  2.   

    鼠标指到某记录时执行删除操作,   rs.Delete 就出错?是否你的意思是鼠标指到datagrid的一条记录,然后rs.Delete
    datagrid是怎样与rs建立的动态连接的关系?
      

  3.   

    我的建议是:用数据窗体向导生成一个数据窗体(在数据窗体向导-form这一步,窗体布局选择 网格(数据表),绑定类型选择 ado代码,然后看看里面的代码(和你的代码对比一下 )
      

  4.   

    SoHo_Andy(冰) :是否你的意思是鼠标指到datagrid的一条记录,然后rs.Delete出错
    是的 ,datagrid就是定义一个记录集打开一个表,然后给datagrid副数据源
    strsql = "select * from table1"
    Set rsItem = New ADODB.Recordset
    rs.Open strsql, aConnect, adOpenKeyset, adLockOptimistic
    Set DataGrid1.DataSource = Nothing
    Set DataGrid1.DataSource = rs
    就这样动态连接的啊 rainstormmaster(暴风雨 v2.0) 怎么生成向导数据窗体啊?
      

  5.   

    最后Set DataGrid1.DataSource = rs写错了是Set DataGrid1.DataSource = rsItem
      

  6.   

    //rainstormmaster(暴风雨 v2.0) 怎么生成向导数据窗体啊?工程-添加窗体 选中 vb 数据窗体向导 打开
      

  7.   

    当鼠标指到某记录时执行删除操作,   rs.Delete 就出错?
    出错提示   实时错误‘-2147467259(80004005)’:查询过于复杂
    楼主,你看看这条.鼠标指向当前记录只是在你显示的地方并没有指向你要删除的那条记录
    你指向某条记录之后再用关键字到表里查找这条记录再删除就差不多了啊
      

  8.   

    rs.Delete 之前一般是使用Find方法定位记录
    或者使用filter来过滤你在datagrid里选中一条记录,对于已经绑定完毕的记录集来讲没有任何关系
    Set DataGrid1.DataSource = Nothing
    Set DataGrid1.DataSource = rs这之后就没有任何联系了
      

  9.   

    用sql语句写,delete from table where 关键字段=‘’