當運行在訪問我的VBA代碼我得到的運行時錯誤424,「對象需要」。這是導致錯誤(特別是2號線)的代碼如何解決在MS-Access中的424運行時錯誤「對象需要」從我的VBA代碼
DoCmd.RunSQL "DELETE * From PF_PC_TOTAL; "
DmCmd.RunSQL "INSERT INTO Table![PF_PC_TOTAL] VALUES ('Andre', 5, 6) ;"
當運行在訪問我的VBA代碼我得到的運行時錯誤424,「對象需要」。這是導致錯誤(特別是2號線)的代碼如何解決在MS-Access中的424運行時錯誤「對象需要」從我的VBA代碼
DoCmd.RunSQL "DELETE * From PF_PC_TOTAL; "
DmCmd.RunSQL "INSERT INTO Table![PF_PC_TOTAL] VALUES ('Andre', 5, 6) ;"
試試這個
DmCmd.RunSQL "INSERT INTO PF_PC_TOTAL (COL1, COL2, COL3) VALUES ('Andre', 5, 6) ;"
,並在表
除了沒有RunSQL。 CurrentDb.Execute要好得多。 – Fionnuala
略去更換COL1, COL2
和COL3
實際列名「表」!來自你的表名的前綴。 「爆炸」符號只能被VBA代碼識別,而不能被VBA代碼使用的SQL引擎識別。
DmCmd.RunSQL "INSERT INTO [PF_PC_TOTAL] VALUES ('Andre', 5, 6) ;"
還有另外一個問題,它詳細介紹了這一部分,有一些很好的鏈接: Bang Notation and Dot Notation in VBA and MS-Access
您可能還需要檢查代碼樣本的文檔中:https://msdn.microsoft.com/en-us/library/office/ff834799.aspx
他們使用的是數據庫對象的.Execute方法,但SQL語法是DoCmd.Ru相同nSQL。
作爲@Saagar埃利亞斯張學友提到的,它是一個更好的做法,指定列名,以及,雖然它在技術上是可選的,只要數和列匹配的類型。如果有人添加了一列或重新排列了列順序,則不指定名稱會回來。 – GuitarPicker
什麼是你'PF_PC_TOTAL'表的結構,也許它有一些字段必須設置。總之:我會建議buildung查詢設計工具內的所有查詢,這樣他們保持最新的關於重命名... – luk2302
RunSQL幾乎總是一個壞主意http://stackoverflow.com/questions/11213892/whats -the-差的DoCmd-setwarnings和 - currentdb間-執行/ 11213943#11213943 – Fionnuala