表aaa
ID,price1,price2表bbbID,price1,price2
表ccc
ID,price1当ID相等时,把(aaa.price1-bbb.price1)+(bbb.price2-aaa.price1)写入ccc.price1在SQL Server里面,用SQL查询器毫无问题. 但在access中,用ADOCommand.CommandText保存
以下查询语句,然后excute就出错!
update ccc set ccc.price1=(aaa.price1-bbb.price1)+(bbb.price2-aaa.price2)
from ccc, aaa, bbb
where aaa.id=bbb.id and bbb.id=ccc.id

解决方案 »

  1.   

    试试:
    update ccc set C.price1=((A.price1-B.price1)+(B.price2-A.price2))
    from ccc C, aaa A, bbb B
    where A.id=B.id and B.id=C.id
      

  2.   

    update ccc,aaa,bbb set ccc.price1=(aaa.price1-bbb.price1)+(bbb.price2-aaa.price2)
    where aaa.id=bbb.id and bbb.id=ccc.id
      

  3.   

    ADO的版本是多少?换成高版本的试试。
      

  4.   

    好像有这样的问题,不过你可以用access中的查询设计功能完成sql 语句然后copy到程序中去!
      

  5.   

    是不是那个字段还没有数据,值为null的原因。
    如是:还应该加一个判断语句
      

  6.   

    Access中不支持
    update ...  from ...用一个临时表吧...
      

  7.   

    update ccc,aaa,bbb set ccc.price1=(aaa.price1-bbb.price1)+(bbb.price2-aaa.price2)
    where aaa.id=bbb.id and bbb.id=ccc.id用这个语句应该是没问题的,我以前也碰到过这样的问题,是因为在access中要把所以用到表名都放在update后面,不管这个表是否要更新.