【问题标题】:Merge 2 fields and insert into table合并 2 个字段并插入到表中
【发布时间】:2020-07-13 20:24:04
【问题描述】:

嗨,我正在尝试将值插入到我的输出表中 在我的输入表中有

额外利润

10         20 

当我插入到我的输出表中时,它应该被连接为

费用

1020

sub test() 
Dim db As DAO.Database 
Dim rst As DAO.Recordset 
Set db = CurrentDb 
db. execut "Insert into OUTPUT_TBL (DESCRIPTION,COST,DEBIT,CREDIT) " & _
           " SELECT INPUT.DESCRIPTION,((INPUT.PROFIT)+(INPUT.EXTRA)) AS COST," & _
           "        IIF(EXTERNAL.SOLUTION='DEBIT',(AMOUNT),0) as DEBIT, " & _
           "        IIF(EXTERNAL.SOLUTION='CREDIT',(AMOUNT),0) AS CREDIT " & _
           "   FROM INPUT , EXTERNAL"
db.close 
end test 

当我尝试运行它时,我收到了运行时错误 3075 的错误

【问题讨论】:

    标签: ms-access vba ms-access-2010


    【解决方案1】:

    几个问题 - 注意到一个错字,应该是 db.execute "" 而不是 db.execute 此外,对于字符串连接,请在 Access SQL 中使用 &。 3075 表示您使用了错误的运算符。 另一件事,您可能还需要在 SQL 中添加一个 JOIN。

    例如,让您走上正轨:

    db.execute "Insert into OUTPUT_TBL (DESCRIPTION,COST,DEBIT,CREDIT) SELECT INPUT.DESCRIPTION,((INPUT.PROFIT)&""&(INPUT.EXTRA)) AS COST,IIF(EXTERNAL.SOLUTION='DEBIT',(AMOUNT),0) as DEBIT,  IIF(EXTERNAL.SOLUTION='CREDIT',(AMOUNT),0) AS CREDIT from INPUT JOIN EXTERNAL ON INPUT.KEY=EXTERNAL.KEY"
    

    【讨论】:

    • 我已经使用了连接,但是当我尝试连接它时存在相同的问题,当我删除 ((INPUT.PROFIT)&""&(INPUT.EXTRA)) AS COST 时问题不会出口!!我怎么能克服这个?
    • 当您尝试 (CSTR(INPUT.PROFIT)&""&CSTR(INPUT.EXTRA)) 时会发生什么?可能是类型转换问题
    • 它正在工作(INPUT.PROFIT & INPUT.EXTRA)在这里找到答案techonthenet.com/access/functions/string/concat.php
    • 是的,我认为空字符串“”是不需要的,但据我所知,如果它们都是字符串类型,它仍然应该连接。
    猜你喜欢
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多