【问题标题】:Issue with expected parameters in SQL statementSQL 语句中的预期参数问题
【发布时间】:2020-12-09 14:50:02
【问题描述】:

我正在尝试在 VBA 中运行一个小的追加查询来为重复记录添加新数据。

strsql = " INSERT INTO tblQuoteNumGeneration ( JobID, BaseQuote, Yearnum, RevisionNum )"
strsql = strsql & " SELECT JobID = [Forms]![JobQuote]![JobID], BaseQuote = " & _
    QuoteNumber & ", YearNum = " & MyYear & ", RevisionNum = " & NewRev & ""
strsql = strsql & " FROM tblQuoteNumGeneration"

但是,我收到了 Expected parameters 错误。在debug.print 上,它输出:

INSERT INTO tblQuoteNumGeneration ( JobID, BaseQuote, Yearnum, RevisionNum )
SELECT JobID = [Forms]![JobQuote]![JobID], BaseQuote = 14937, YearNum = 20, RevisionNum = 2
FROM tblQuoteNumGeneration

是否有更精通 SQL 的人可以帮我指出我的错误?

【问题讨论】:

    标签: sql vba ms-access


    【解决方案1】:

    您生成了不正确的 SQL 语句。而不是:

    INSERT INTO tblQuoteNumGeneration ( JobID, BaseQuote, Yearnum, RevisionNum )
    SELECT JobID = [Forms]![JobQuote]![JobID], BaseQuote = 14937, YearNum = 20, RevisionNum = 2
    FROM tblQuoteNumGeneration
    

    你应该有:

    INSERT INTO tblQuoteNumGeneration ( JobID, BaseQuote, Yearnum, RevisionNum ) 
    SELECT JobID, BaseQuote, Yearnum, RevisionNum
    FROM tblQuoteNumGeneration
    

    【讨论】:

    • 这帮助我弄清楚我做错了什么。而不是像 JobID = "variable" 那样做所有这些,只做变量。
    • INSERT INTO (...) VALUES ([Forms]![JobQuote]![JobID], 14937, 20, 2),取决于他想要什么。如果使用了 SELECT,那么可能是为了添加 WHERE JobID = [Forms]![JobQuote]![JobID]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 2021-09-12
    相关资源
    最近更新 更多