奇怪了,居然无法删除记录了,同样的语句可以删除一条记录,但是无法删除多个记录,拜年问好提问散分。解决思路
奇怪了,居然无法删除记录了,同样的语句可以删除一条记录,但是无法删除多个记录,拜年问好提问散分。
有两个记录集
Rec(1) as recordset
Rec(5) as recordset
打开方式是一样的
...
With Rec(I)
.CursorLocation = adUseClient
.Open SQL(I), DB, adUseClient, 3
End With
...
关系是一对多的子细表
在REC(1)中有一个唯一的序列号子段,而同一个序列号在REC(5)中对应多条记录;
ID为一个参数
查询为:
Rec(1).Filter = "INV_ID like ' " & ID & " ' "
和
Rec(5).Filter = "DTL_INV_ID like ' " & ID & " ' "
删除:
Rec(1).Delete adAffectCurrent
Rec(5).Delete adAffectGroup
奇怪的是REC(1)可以删除,而运行到第2句的时候,错误信息为:
“实时错误‘3219’
Operation is not allowed in this context "
不知道哪里又踩到地雷了,各位兄弟姐妹们,都来帮忙啦,解决了偶就能安心过年啦,谢谢。
------解决方案--------------------
会不会是同步方面的问题,你有用循环么?你要么把连接对象关闭后再打开,然后再执行第2个语句。或者使用动态游标类型?
------解决方案--------------------
我试验了,就是不行。在网络上找到的
AdAffectGroup 删除满足当前 Filter 属性设置的记录。要使用该选项,必须将 Filter 属性设置为有效的预定义常量之一。
但是也不知道filter常量怎么设置,我用了列出来的常量。还是不可以
我也来学习
------解决方案--------------------
这两个表之间有约束关系--级联删除,主表的记录删除时,细表的相关纪录就随着被删除,所以,第一句已经删除了,在执行删除当然报错。可以检查一下你的表之间的级联约束关系。
------解决方案--------------------
同意楼上的
在第一次删除中,假如关键字被删除,那么后面的肯定有问题!
------解决方案--------------------
'用这种方法删除试试:
db.execute "delete from tablename where ... "
------解决方案--------------------
同意楼上的.
或者把你的SQL语句Show来See.
------解决方案--------------------
没有用过这种删除方法
从提示看,感觉Filter属性设置有问题,试试用一下通配符:
Rec(5).Filter = "DTL_INV_ID like '* " & ID & "* ' "
------解决方案--------------------
放假了 没心思想问题了
帮顶了
------解决方案--------------------
up
------解决方案--------------------
你有试过把连接对象关闭后再打开,然后再执行第2个语句么?怀疑是同时操作一个表而出现的问题
------解决方案--------------------
你怎么自动把我的话过滤了呢
不应该是你的表格关系问题,因为我是建立了一个没有任何关系的表也不行。
delete...
这个方法你肯定知道,不然白当大星星了
我看到说删除多条记录,filter要设置成预定义常量
有两个记录集
Rec(1) as recordset
Rec(5) as recordset
打开方式是一样的
...
With Rec(I)
.CursorLocation = adUseClient
.Open SQL(I), DB, adUseClient, 3
End With
...
关系是一对多的子细表
在REC(1)中有一个唯一的序列号子段,而同一个序列号在REC(5)中对应多条记录;
ID为一个参数
查询为:
Rec(1).Filter = "INV_ID like ' " & ID & " ' "
和
Rec(5).Filter = "DTL_INV_ID like ' " & ID & " ' "
删除:
Rec(1).Delete adAffectCurrent
Rec(5).Delete adAffectGroup
奇怪的是REC(1)可以删除,而运行到第2句的时候,错误信息为:
“实时错误‘3219’
Operation is not allowed in this context "
不知道哪里又踩到地雷了,各位兄弟姐妹们,都来帮忙啦,解决了偶就能安心过年啦,谢谢。
------解决方案--------------------
会不会是同步方面的问题,你有用循环么?你要么把连接对象关闭后再打开,然后再执行第2个语句。或者使用动态游标类型?
------解决方案--------------------
我试验了,就是不行。在网络上找到的
AdAffectGroup 删除满足当前 Filter 属性设置的记录。要使用该选项,必须将 Filter 属性设置为有效的预定义常量之一。
但是也不知道filter常量怎么设置,我用了列出来的常量。还是不可以
我也来学习
------解决方案--------------------
这两个表之间有约束关系--级联删除,主表的记录删除时,细表的相关纪录就随着被删除,所以,第一句已经删除了,在执行删除当然报错。可以检查一下你的表之间的级联约束关系。
------解决方案--------------------
同意楼上的
在第一次删除中,假如关键字被删除,那么后面的肯定有问题!
------解决方案--------------------
'用这种方法删除试试:
db.execute "delete from tablename where ... "
------解决方案--------------------
同意楼上的.
或者把你的SQL语句Show来See.
------解决方案--------------------
没有用过这种删除方法
从提示看,感觉Filter属性设置有问题,试试用一下通配符:
Rec(5).Filter = "DTL_INV_ID like '* " & ID & "* ' "
------解决方案--------------------
放假了 没心思想问题了
帮顶了
------解决方案--------------------
up
------解决方案--------------------
你有试过把连接对象关闭后再打开,然后再执行第2个语句么?怀疑是同时操作一个表而出现的问题
------解决方案--------------------
你怎么自动把我的话过滤了呢
不应该是你的表格关系问题,因为我是建立了一个没有任何关系的表也不行。
delete...
这个方法你肯定知道,不然白当大星星了
我看到说删除多条记录,filter要设置成预定义常量