-1
我在寫入Microsoft Access中的VBA宏時遇到問題。我想要做的是使用SQL來創建一個輸出表,但我想同時寫入多個列。用SQL模擬寫入多列
這讓我我需要爲一列的所有值:
Docmd.RunSQL 「INSERT INTO Output (TargetCol1) SELECT [Field1] FROM [Table1] WHERE [Criteria1] = ‘Value’ GROUP BY Field1」
當我嘗試運行此多次獲得我需要其他列的值。 INSERT INTO寫入數據作爲新的記錄,所以我結束了空格,如:
Field1----Field2
Value----<Null>
Value----<Null>
Value----<Null>
<Null>----Value
<Null>----Value
我要的是:
Field1----Field2
Value---- Value
Value---- Value
Value----<Null>
我試圖創建的變量並創建一種嵌套的語句,但我收到「編譯錯誤,對象需要對我的第一線,當我嘗試運行是我採寫:
Set x = Docmd.RunSQL 「INSERT INTO Output (TargetCol1) SELECT [Field1] FROM [Table1] WHERE [Criteria1] = ‘Value’ GROUP BY Field1」
Set y = Docmd.RunSQL 「INSERT INTO Output (TargetCol2) SELECT [Field2] FROM [Table1] WHERE [Criteria2] = ‘Value’ GROUP BY Field2」
Docmd.runsql 「INSERT INTO Output (TargetCol1, TargetCol2) Values (x,y)」
感謝您抽出寶貴的響應時間。我收到一個「錯誤的查詢值數目和目標值不一樣」。 GROUP BY消除冗餘值。 我正在查看您的鏈接。總是試圖學習如何編寫更好的代碼。 – Dobbes
糟糕,我閱讀了分組順序。我不確定你在這裏做什麼。是否輸出表中有一個以上的列嗎?難道要更新的第二列,如果是這樣,你需要的東西加入嗎? 「插入」總是添加新記錄。 – Fionnuala
你給了我一個想法,以創建單獨的表爲每個輸出列,分配一個唯一的ID,然後加入表一起。謝謝。 – Dobbes