如何在Excel VBA中处理空值

如何在Excel VBA中处理空值,excel,vba,Excel,Vba,我必须使用Excel VBA从Excel 2007更新相当大的Access 2007表18字段。问题是,行中的许多字段可能没有值,而创建一个算法来更改SQL语句将是巨大的,即确定每行哪些字段必须在UPDATE语句中,或者不在UPDATE语句中,等等。因此,我的问题是,是否可以处理空Excel单元格以将其包含在SQL UPDATE语句中?access数据库中的一些目标字段也是日期字段和数字,那么如何处理这些字段呢 我尝试过检查单元格是否为空,并分配一个null或空值,如 variablename

我必须使用Excel VBA从Excel 2007更新相当大的Access 2007表18字段。问题是,行中的许多字段可能没有值,而创建一个算法来更改SQL语句将是巨大的,即确定每行哪些字段必须在UPDATE语句中,或者不在UPDATE语句中,等等。因此,我的问题是,是否可以处理空Excel单元格以将其包含在SQL UPDATE语句中?access数据库中的一些目标字段也是日期字段和数字,那么如何处理这些字段呢

我尝试过检查单元格是否为空,并分配一个null或空值,如

variablename = Null or Empty or "" or 0 if an integer
比如说

If Not IsEmpty(ws.Cells(i, 7).value) Then
    dteEndDate = DateValue(ws.Cells(i, 7).value)
Else
    dteEndDate = Empty
End If

找到了处理此特定表的不同方法。我没有使用更新,而是在相关表中查询表中的主键,然后将它们与要更新的行进行匹配,发现它们只有两条记录没有更新。因此,我重命名了访问表并删除了关系。然后刚导入Excel工作表作为新表访问,但为其提供了相关表的以前名称。然后我添加了关系,并使用SQL为空单元格插入了不在工作表中的两条记录

,您不能将NULL作为它们的值传递给UPDATE语句吗。。。像updatetable SET name='jacob',birthdate=NULL,favcolor='red',shoesize=NULL那样,你总是有相同数量的字段,你可以直接从行中插入值或NULL。你是在每一行中分别循环吗?如果值=或,则可以创建一个函数将值设置为NULLIsEmpty@WyattShipman是的,我在每一行循环。我已经更新了我的问题,并列举了一些与你类似的例子suggested@JNevill是的,我已经更新了我的问题,并提供了与您建议的类似的示例,请不要将dteEndDate的值设置为空。将其设置为字符串:NULL,类似于dteEndDate=NULL。当您将UPDATE语句缝合在一起时,您希望它实际显示SET=NULL。NULL是数据库的关键字,表示没有值。它与SET=不同,它不仅会在更新日期字段时抛出一个错误,而且会在非日期字段中保留一个值,当您想要的是其中的空值时。