cn2.Execute "delete * from linshi"
cn2.Execute "insert into linshi select * from 今日表 where 类别='入库'" & s
用inner jion语句后,提示from语句错误,但是我没看出哪里有问题!
cn2.Execute "update (select * from 库存表 inner join linshi on 库存表.车型品名=linshi.车型品名 set 库存表.库存量=trim(str(val(库存表.库存量)+val(linshi.数量))),库存表.库存吨数=trim(str(val(库存表.库存吨数)+val(linshi.单重)*val(linshi.数量)/1000)) "

解决方案 »

  1.   

    1. 没见过Update后面跟Select的,楼主仔细看看Update语法吧:UPDATE [DatabaseName1!]TableName1
    SET Column_Name1 = eExpression1
      [, Column_Name2 = eExpression2 ...]
      WHERE FilterCondition1 [AND | OR FilterCondition2 ...]][DatabaseName1!]TableName1部分是不允许出现Select的,更不允许出现Join。2. 根据变量值动态生成SQL的语句有问题,按你这样写:
    "update (select * from 库存表 inner join linshi on 库存表.车型品名=linshi.车型品名 set 库存表.库存量=trim(str(val(库存表.库存量)+val(linshi.数量))),库存表.库存吨数=trim(str(val(库存表.库存吨数)+val(linshi.单重)*val(linshi.数量)/1000)) "
    这里面的trim(str(val(库存表.库存量)+val(linshi.数量)))和trim(str(val(库存表.库存吨数)+val(linshi.单重)*val(linshi.数量)/1000))是被当作SQL语句的一部分了。
    这个语句应该写成:
    "update ...... set 库存表.库存量=库存表.库存量+" & Str(linshi.数量) & ",库存表.库存吨数=库存表.库存吨数+" & Str(val(linshi.单重)*val(linshi.数量)/1000)
      

  2.   

    可是我的库存量和库存吨数都是字符字段不是数值字段,所以要加trim(str())转换,这个语句我在另一个程序里面使用没有问题,不知道怎么挪到这里来就提示出错??