rs.Delete时提示提示“查询过于复杂”怎么会事?
我用的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 就没问题,请大家帮忙解决?!
问题点数:30、回复次数:12Top
1 楼computer17(黄昏之路づ流浪汉)回复于 2004-08-04 16:06:53 得分 1
把你的删除代码发出来看看/Top
2 楼SoHo_Andy(冰)回复于 2004-08-04 16:10:55 得分 2
估计时删除无法定位,就是没有唯一的删除标志字段
因为你说的不清楚,所以无法进一步解释了Top
3 楼zhuixing(ABC)回复于 2004-08-04 16:16:13 得分 0
If MsgBox("确实要删除这条记录吗?", vbExclamation + vbYesNo, "删除确认") = vbYes Then
rsItem.Delete 'adAffectCurrent
rsItem.Update
End If
说的还不清楚吗,很简单啊,这是删除代码啊
SoHo_Andy(冰) 标志地段,我有一个自动加一的id啊,不重复的,Top
4 楼SoHo_Andy(冰)回复于 2004-08-04 16:35:18 得分 0
鼠标指到某记录时执行删除操作, rs.Delete 就出错?
是否你的意思是鼠标指到datagrid的一条记录,然后rs.Delete
datagrid是怎样与rs建立的动态连接的关系?
Top
5 楼rainstormmaster(暴风雨 v2.0)回复于 2004-08-04 16:44:04 得分 3
我的建议是:用数据窗体向导生成一个数据窗体(在数据窗体向导-form这一步,窗体布局选择 网格(数据表),绑定类型选择 ado代码,然后看看里面的代码(和你的代码对比一下 )Top
6 楼zhuixing(ABC)回复于 2004-08-05 09:24:18 得分 0
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) 怎么生成向导数据窗体啊?
Top
7 楼zhuixing(ABC)回复于 2004-08-05 09:28:53 得分 0
最后Set DataGrid1.DataSource = rs写错了是Set DataGrid1.DataSource = rsItem
Top
8 楼rainstormmaster(暴风雨 v2.0)回复于 2004-08-05 09:43:11 得分 0
//rainstormmaster(暴风雨 v2.0) 怎么生成向导数据窗体啊?
工程-添加窗体 选中 vb 数据窗体向导 打开Top
9 楼computer17(黄昏之路づ流浪汉)回复于 2004-08-05 11:18:56 得分 2
当鼠标指到某记录时执行删除操作, rs.Delete 就出错?
出错提示 实时错误‘-2147467259(80004005)’:查询过于复杂
楼主,你看看这条.鼠标指向当前记录只是在你显示的地方并没有指向你要删除的那条记录
你指向某条记录之后再用关键字到表里查找这条记录再删除就差不多了啊Top
10 楼SoHo_Andy(冰)回复于 2004-08-05 14:50:23 得分 2
rs.Delete 之前一般是使用Find方法定位记录
或者使用filter来过滤
你在datagrid里选中一条记录,对于已经绑定完毕的记录集来讲没有任何关系
Set DataGrid1.DataSource = Nothing
Set DataGrid1.DataSource = rs
这之后就没有任何联系了Top
11 楼Litao81(123)回复于 2004-09-02 14:58:25 得分 18
用sql语句写,delete from table where 关键字段=‘’Top
12 楼Leftie(左手,为人民币服务)回复于 2004-09-02 15:02:54 得分 2
估计数据库中有完全重复的记录存在,请在数据的表中增加一自动递增的列再试试Top




