我在数据库中有一个可选字段,我使用DAO记录集提取.在将其与其他字段连接之前,我需要检查字段是否已设置.到目前为止,我有下面的代码片段,我已经与两个尝试Is
和=
(这是显然错误的语法[[Is | =]]
)无济于事.看来,如果我使用=
它将无法正确比较,Null
如果我使用Is
它然后抱怨它不是与对象比较.
While Not rs.EOF If rs.Fields("MiddleInitial") [[Is | =]] Null Then thisMiddleInitial = "" Else thisMiddleInitial = rs.Fields("MiddleInitial") If prettyName(myLastName, myFirstName, myMiddleInitial) = prettyName(rs.Fields("LastName"), rs.Fields("FirstName"), thisMiddleInitial) Then MsgBox "Yay!" End If rs.MoveNext Wend
如果有一个更简单的方法,我完全愿意接受它.prettyName需要3个字符串作为参数,最初我只是尝试直接传递rs.Fields("MiddleName"),但它以Null值抛出.我更愿意做更直接的事情,但这是我能想到的最好的事情.
怎么样:
IsNull(rs.Fields("MiddleInitial").Value)
您还可以查看本文,其中介绍了Access VBA应用程序中的Null值以及如何处理它们.
对于你展示的例子,Nz会工作:
thisMiddleInitial = Nz(rs!MiddleInitial,"")
或者简单地将字符串与空字符串连接:
thisMiddleInitial = rs!MiddleInitial & ""