具有空字符串或空字符串的MS Access VBA更新字段

时间:2017-08-16 20:17:50

标签: vba ms-access

我正在尝试通过VBA从DAO Recordset更新MS Access表。问题是,如果其中一个字段值为null。代码出错了。我可以使用IsNull(rst.Fields("FirstName").value,"")这样的东西吗?我尝试使用它,但它会抛出错误"无效使用Null"。请帮忙。

strSQL = Update myTable SET myField ='" & rs.Fields("recField").Value & "' where id = 25
db.Execute strSQL

在这种情况下,rs.Fields("recField").Value为空

2 个答案:

答案 0 :(得分:0)

NZ是MS Access的内置函数来处理空值

  

Nz(变体,[value_if_null])

    • Nz (rst.Fields("FirstName").Value, 0)

或者,您可以使用VBA IIF语句。

  

IIf(Expression,TruePart,FalsePart)

要返回空字符串,请使用:

Nz (rst.Fields("FirstName").Value, "")IIf(rst.Fields("FirstName").Value, "", rst.Fields("FirstName").Value)

如果要更新的字段是数字,那么如果为null,则需要返回零值:

Nz (rst.Fields("FirstName").Value, 0)IIf(rst.Fields("FirstName").Value, 0, rst.Fields("FirstName").Value)

答案 1 :(得分:0)

您可以使用我的 CSql 函数here,如:

strSQL = "Update myTable Set myField = " & CSql(rs.Fields("recField").Value) & " Where id = 25"

这将是一个价值回报:

"Update myTable Set myField = 'ValueOfField' Where id = 25"

,值为Null:

"Update myTable Set myField = Null Where id = 25"