2014-12-29 4 views
-1

Я пытаюсь объединить 3 SQL statemnets в VBA, чтобы они отображались как одна запись в таблице. По какой-то причине VBA вызывает слишком мало ошибок параметров. Вот что мой отладки оператор печати выдает:Комбинировать SQL Insert INTO

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 " 

Я пытался отладить ее, но безуспешно. Любая помощь будет принята с благодарностью!

+0

Сколько мест в этом поле действительно содержит? ... '[TOTAL ДОЛЖЕН БЫТЬ ИМПОРТИРОВАН]' – HansUp

+0

Выполняется ли запрос, когда вы запускаете его сам по себе (как 'select', так и после' insert')? Сколько столбцов находится в вашей таблице «Всего»? Выглядит хорошо на первый взгляд ... – sgeddes

+0

Прежде всего, попробуйте, если инструкция SELECT работает по вашему желанию. –

ответ

0

Я думаю, что получил. Вы пропустили последний )

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 & _ 
")" 

Я хотел бы предложить использовать одни и те же имена в запросе. Обратите внимание, что тип данных должен быть одинаковым!