如下代码:
cnA.Execute "delete  from A,B,C where (A.班级='2BAN') and (A.编号=B.编号) and (A.编号=C.编号)"数据库是Acess2000,并且在acecc2000环境建立了A->B、A->C 一对多关系。
调试执行时出现如下错误提示:
“实时错误-2147467259”
指定包含要删除的记录的表
请教怎样解决?我太爱csdn的朋友了

解决方案 »

  1.   

    楼主,Access用的SQL语法不允许Delete语句中From多表吧
        所以楼主要确定是From A还是From B还是From C
        如果确定不了那就想办法改善表结构,直接能确定From哪个表...
        当然也可以换个高级的数据库,比如SQL Server,它有Transact-SQL扩展语法.
        如果不想做如上变动...可以想办法先用上边的Where条件Select出一个RecordSet,然后按里面
    记录的编号逐一删除三个表中对应的记录.
      

  2.   

    cnA.Execute "delete  from A,B,C where (A.班级='2BAN') and A.编号 in (select a.编号 from a,b,c where a.编号=b.编号 and (A.编号=C.编号))" 
    不知道这样行不行
      

  3.   

    delete  from C RIGHT JOIN (A RIGHT JOIN B ON A.编号=B.编号) ON C.编号=A.编号 WHERE A.班级='2BAN'
      

  4.   

    其实我是想全部删除A,B,C表中“where (A.班级='2BAN') and (A.编号=B.编号) and (A.编号=C.编号)” 中的所有数据
      

  5.   

    可能大家没能理解我的全意吧我是想先从A表选择(班级='2BAN')的记录,然后再在这些记录中选择与B,C表中字段“编号”都相同的记录,然后将最终匹配的记录删除掉
    拜托  诸位大侠拉
      

  6.   

    好像access不支持这么复杂的操作
    有空换sql台吧