我正在尝试运行将字段复制到新表中的代码,将它们从_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 和 Records_New)都是有效的。 Option Explicit
在文件的其他地方设置,以避免因拼写错误而造成混淆。错误被抛出就DoCmd
行了。
为什么这会有一个Null
值,即使DoCmd.RunSQL
不返回一个值?