VB删除数据库记录报错:键列信息不足或不正确。更新影响到多行 10

首先说明:1,我在数据库表A里面建立一个触发器DELETE当删除表A某条记录,则相对应的删除该记录某字段对应的表B内相关的所有记录2,表A表B都建立了自增字段ID1ID2... 首先说明:
1,我在数据库表A里面建立一个触发器DELETE
当删除表A某条记录,则相对应的删除该记录某字段对应的表B内相关的所有记录
2,表A 表B 都建立了自增字段 ID1 ID2 都设置成了主键
3,我直接打开数据库删除表A某条记录,可以正确的执行Delete触发器删除表B内相关联的所有记录
然后我开始在VB应用程序里面使用代码删除:formX.AdodcX.Recordset.Delete 删除表A一条记录
调试报错,上条代码变黄色,报错信息如题:键列信息不足或不正确。更新影响到多行
网上百度都是说没主键 要不就是有完全重复的记录 ,我的表内不存在网上说的那些错误.............郁闷
我的表有主键,自增型的就不会存在完全重复的可能
如果我禁用触发器,VB代码执行完全正常,只是为了让代码更简练、稳定,所以尽量用触发器去实现
恳请大神指点啊!!
Form4.Adodc5.RecordSource = "select * from 出入库单据表 where 单据='" & System_documents & "'"
Form4.Adodc5.Refresh
Do While Not Form4.Adodc5.Recordset.EOF
Form4.Adodc5.Recordset.Delete
Form4.Adodc5.Recordset.MoveNext
Loop
这个明显是包括了所有字段了啊 Select * ,* 表示所有字段啊,也就包括了主键ID1了啊
展开
 我来答
czx239
2016-05-30 · TA获得超过258个赞
知道小有建树答主
回答量:522
采纳率:0%
帮助的人:233万
展开全部
是你查询出来的结果没有主键吧.如果你查询的语句没有把id1,id2包括进去.那么你删除数据的时候按照查询结果去删除,会有一样的记录就会出现这样的错误.
也就是你数据库里有主键,但是你程序的数据集里可能没有主键或唯一性字段,删除一条记录,如果数据库匹配出一样的记录就会这样.
追问
啊?难道说,自增字段也要拿出来放进查询结果里面
哦,这个就有点麻烦了,随知道表A的自增ID1会不会和表B的自增ID2冲突呢
【我确实没有把自增字段作为查询结果】
担心ID1和ID2打架.......
我明天尝试看看
syx54
2016-05-30 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2743万
展开全部
你的是什么版本的VB?
是否可以发过来,看看?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式