2015-05-13 36 views
0

當運行在訪問我的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) ;" 
+0

什麼是你'PF_PC_TOTAL'表的結構,也許它有一些字段必須設置。總之:我會建議buildung查詢設計工具內的所有查詢,這樣他們保持最新的關於重命名... – luk2302

+0

RunSQL幾乎總是一個壞主意http://stackoverflow.com/questions/11213892/whats -the-差的DoCmd-setwarnings和 - currentdb間-執行/ 11213943#11213943 – Fionnuala

回答

2

試試這個

DmCmd.RunSQL "INSERT INTO PF_PC_TOTAL (COL1, COL2, COL3) VALUES ('Andre', 5, 6) ;" 

,並在表

+1

除了沒有RunSQL。 CurrentDb.Execute要好得多。 – Fionnuala

0

略去更換COL1, COL2COL3實際列名「表」!來自你的表名的前綴。 「爆炸」符號只能被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

+0

作爲@Saagar埃利亞斯張學友提到的,它是一個更好的做法,指定列名,以及,雖然它在技術上是可選的,只要數和列匹配的類型。如果有人添加了一列或重新排列了列順序,則不指定名稱會回來。 – GuitarPicker

相關問題