我試圖運行將字段複製到新表中的代碼,將它們從_New
表中移動到原始表中。這樣做的VBA代碼可以這樣工作:查詢中的「空」值
SQLStatement = CStr("INSERT INTO " & TName & " SELECT * FROM " & TName & "_New")
Log.WriteLine "Running query with string """ & SQLStatement & """ "
QueryTimer = Timer
DoCmd.RunSQL SQLStatement
Log.WriteLine "Query time: " & (Timer - QueryTimer)
該日誌只是我放在一起的類模塊中的少數幾個過程。其上的錯誤輸出
@142921: Running query with string "INSERT INTO Records SELECT * FROM Records_New"
@142941: Error Date/Time: 7/21/2009 2:29:40 PM
@142941: Error # & Description: 3162, You tried to assign the Null value to a variable that is not a Variant data type.
我可以證實,TName
和SQLStatement
是當時在運行SQL操作都有效字符串,並且源(記錄和Records_New)都是有效的。 Option Explicit
在文件的其他位置設置,以避免拼寫錯誤造成混淆。錯誤發生在DoCmd
行。
爲什麼會有Null
的值,即使DoCmd.RunSQL
沒有返回值?
什麼線是它引發錯誤? 你可以嘗試添加「選項顯式」到你的代碼的頂部,看看它是否仍然編譯? – JohnFx 2009-07-21 18:42:37
添加信息來回答您的問題。 – 2009-07-21 18:46:12
您是否嘗試直接運行查詢(在您的代碼之外)。這可能會解決問題。 – JohnFx 2009-07-21 18:50:40