使用vba在访问时将null值插入日期字段

时间:2014-10-29 14:38:21

标签: vba date access-vba

尝试在访问时使用vba将日期从表插入另一个表,但表中的一个日期值为空。因此,在将日期插入新表时,它会显示无效使用空例外 运行时错误94

4 个答案:

答案 0 :(得分:0)

您可以使用NZ()函数来定义应该使用的值而不是NULL。在内部,日期是浮点值,其中数字表示从01.01.1900到应存储的日期之间的天数。小数点后面的部分表示小时/分钟(.25例如是早上6点)。因此,您可以使用NZ()函数替换NULL bei 0(将被解释为01.01.1900)。

另一种解决方案是以允许NULL值的方式配置目标表。您可以在表格的设计视图中轻松完成此操作。

答案 1 :(得分:0)

我想我弄清楚了,将变量声明为字符串。然后检查表中的值是否为空,然后为其指定null。另外明智地从表中指定值。

例如

   Dim newdate As String

检查提取的值是否为空

   If IsNull(rst![value]) Then
            newdate = "null"
   Else
           newdate = rst![value]
   End If     

答案 2 :(得分:0)

我遇到了这个问题并以这种方式解决了。

SQL = "update mytable set mydatefield = '" & txtdate & "'"

在表单上的txtdate上,添加日期格式以确保日期为实际日期或仅为空白。

答案 3 :(得分:0)

如果编写DAO代码来清除Date字段,我发现我必须使用" Empty"。空和""不会工作。所以对于字段dtmDelivery(类型日期),我不得不使用以下内容。 strDelivery只是一个包含日期的字符串。

Set rst = dbs.OpenRecordset("tblSomething", dbOpenDynaset)
If (strDelivery = "") Then                      
    rst!dtmDelivery = Empty    
Else 
    rst!dtmDelivery = strDelivery
End If

rst.Update