我下面的邏輯有什么問題,是否有任何替代方法可以獲取可計算的列,該列將為每個唯一的 KEY 求和 Balances ?
目的:創建一個匯總列,計算每個創建的唯一鍵(排序代碼 源帳戶)的余額,稍后將用于定義 acc 型別是否為 Dr/Cr。
代碼:下面的代碼應該創建摘要列,但每次它都會觸發附加螢屏截圖中描述的錯誤。
***' Creating Sum of Balances based on Key , to differtiate Dr/Cr Account types
DoCmd.RunSQL "ALTER TABLE Output_File ADD Summing varchar(255)"
DoCmd.RunSQL "UPDATE Output_File SET Summing =" _
& "(SELECT SUM(Output_File.CURR_VALUE)" _
& " FROM Output_File GROUP BY Output_File.`UNIQUE KEYS`)"***
錯誤: 錯誤
uj5u.com熱心網友回復:
在 MS Access SQL 中,更新查詢必須是可更新的或不是只讀的。任何使用子查詢都會使查詢變為只讀。請參閱 Allen Browne 的為什么我的查詢是只讀的?一種解決方法是使用域聚合,例如DSumAccess SQL 和 VBA 中可用的。
理想情況下,也可以考慮使用保存的查詢,避免在 VBA 中構建長 SQL 陳述句,并且不必擔心換行和連接。下面假設UNIQUE KEYS是一個數字欄位。如果是文本欄位,則用單引號括起來。如果是日期欄位,請包含主題標簽/磅符號。
SQL (另存為存盤查詢)
UPDATE Output_File o
SET Summing = DSum("CURR_VALUE", "Output_File", "`UNIQUE KEYS` = " & o.`UNIQUE KEYS`)
VBA (參考上面保存的查詢)
DoCmd.OpenQuery "mySavedQuery" ' NO NEED TO CLOSE ACTION QUERIES
CurrentDb.Execute "mySavedQuery" ' ALTERNATIVE CALL
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/514550.html
標籤:sqlvba毫秒访问
下一篇:使用sql合并2個資料集?
