【问题标题】:Combine SQL Insert INTO结合 SQL 插入 INTO
【发布时间】:2015-02-25 23:22:42
【问题描述】:

我正在尝试在 VBA 中组合 3 个SQL statemnet,以便它们在表格中显示为一条记录。由于某种原因,VBA 会引发参数太少的错误。这是我的调试打印语句输出的内容:

INSERT INTO Totals
            ([TOTAL VERIFIED FORMULARIES],[TOTAL AVAILABLE FOR IMPORT],[TOTAL       SHOULD BE IMPORTED])
SELECT A.cnt,B.cnt,C.cnt
FROM   (SELECT Count([FORMULARY ID]) AS cnt
        FROM   VerifiedFormularies) AS A,
       (SELECT Count([FORMULARY ID]) AS cnt
        FROM   ImportMetricsIDs) AS B,
       (SELECT Count([FORMULARY ID]) AS cnt
        FROM   ShouldImportMetricsIDsTable
        WHERE  [IMPORT STATUS] = 'Yes') AS C 

这是我的代码:

totalVerified = "INSERT INTO Totals([TOTAL VERIFIED FORMULARIES], [TOTAL AVAILABLE FOR IMPORT], [TOTAL SHOULD BE IMPORTED]) " & _
"SELECT A.cnt, B.cnt, C.cnt " & _
"FROM ( " & _
    "SELECT COUNT([FORMULARY ID]) as cnt " & _
    "FROM VerifiedFormularies " & _
") AS A " & _
", ( " & _
    "SELECT COUNT([FORMULARY ID]) as cnt " & _
    "FROM ImportMetricsIDs " & _
") as B " & _
", ( " & _
    "SELECT COUNT([FORMULARY ID]) as cnt " & _
    "FROM ShouldImportMetricsIDsTable " & _
    "WHERE [IMPORT STATUS]= 'Yes' " & _
") AS C "

我尝试调试它但没有成功。任何帮助将不胜感激!

【问题讨论】:

  • 这个字段名真正包含多少个空格? ...[TOTAL SHOULD BE IMPORTED]
  • 单独运行查询时是否运行(select 单独运行,然后与 insert 一起运行)? Totals 表中有多少列?乍一看还不错……
  • 首先,请尝试SELECT语句是否如您所愿。
  • 代替:& _ 使用 & vbcr & _

标签: sql vba insert ms-access-2010


【解决方案1】:

我想我明白了。你错过了上次

totalVerified = "INSERT INTO Totals([TOTAL VERIFIED FORMULARIES], [TOTAL AVAILABLE FOR IMPORT], [TOTAL SHOULD BE IMPORTED]) " & vbcr & _
"SELECT [TOTAL VERIFIED FORMULARIES], [TOTAL AVAILABLE FOR IMPORT], [TOTAL SHOULD BE IMPORTED] " & vbcr & _
"FROM ( " & vbcr & _
    "SELECT COUNT([FORMULARY ID]) as cnt " & vbcr & _
    "FROM VerifiedFormularies " & vbcr & _
") AS [TOTAL VERIFIED FORMULARIES], " & vbcr & _
"( " & vbcr & _
    "SELECT COUNT([FORMULARY ID]) as cnt " & vbcr & _
    "FROM ImportMetricsIDs " & vbcr & _
") AS [TOTAL AVAILABLE FOR IMPORT], " & vbcr & _
"( " & vbcr & _
    "SELECT COUNT([FORMULARY ID]) as cnt " & vbcr & _
    "FROM ShouldImportMetricsIDsTable " & vbcr & _
    "WHERE [IMPORT STATUS]= 'Yes' " & vbcr & _
") AS [TOTAL SHOULD BE IMPORTED] " & vbcr & _
")" 

我建议在查询中使用相同的名称。注意,数据类型必须相同!

【讨论】:

    猜你喜欢
    • 2015-04-01
    • 1970-01-01
    • 2017-09-18
    • 2019-02-11
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    相关资源
    最近更新 更多