首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >VBA Access - FindFirst空值

VBA Access - FindFirst空值
EN

Stack Overflow用户
提问于 2017-07-20 20:32:51
回答 1查看 1.4K关注 0票数 1

我试图在下面的代码中找到第一个空值。我可以只在select中使用where,但它将删除非空值。我想保留整个记录集,这样我就可以使用rs.AbsolutePosition向用户报告哪一行为null。我基本上将其设置为将用户在临时表中输入的信息与另一个表进行比较。如果匹配的字符串在那里,它就会出现,否则在记录集中应该是null。

代码语言:javascript
代码运行次数:0
运行
复制
strSQL = "SELECT Tbl_Temp.ID, Tbl_List.String FROM Tbl_Temp LEFT JOIN Tbl_List ON Tbl_Temp.string = Tbl_List.string"
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
strIsN = "IsNull(string)"

rs.FindFirst strIsN
    If rs.NoMatch Then
        MsgBox "no null values"
    Do While Not rs.NoMatch
        MsgBox "Found null" & rs.AbsolutePosition
        rs.FindNext strIsN
    Loop
    rs.FindNext strIsN
End If

它现在基本上什么都不做。甚至不会触发错误或不匹配。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-07-21 16:11:44

你的代码缩进关闭了,把你我都骗了。

这就是你想要的--你错过了Else

代码语言:javascript
代码运行次数:0
运行
复制
RS.FindFirst strIsN
If RS.NoMatch Then
    MsgBox "no null values"
Else
    Do While Not RS.NoMatch
        Debug.Print "Found null " & RS.AbsolutePosition
        RS.FindNext strIsN
    Loop
End If

请阅读How to debug VBA code,单步执行您的代码会立即发现问题所在。

"IsNull(string)""[String] Is Null"都可以工作,但"[String] Is Null"的性能可能会更好一些。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45214858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档