我试图运行将字段复制到新表中的代码,将它们从_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