【发布时间】:2014-05-07 16:04:36
【问题描述】:
我正在尝试查找指定的列是否包含空值或没有数据。如果列中存在空值,则将消息框提供给用户说列包含空值。 我的 vba
Dim sqlid As String
Dim rst As Recordset
Dim cdb As Database
Set cdb = CurrentDb
SQLEID = "SELECT * " & _
"FROM table_1 ;"
'
Set rst = cdb.OpenRecordset(sqlid , dbOpenSnapshot)
Do While Not rst.EOF
If IsNull(rst.Fields("column1").Value) Then
MsgBox "Has nulls"
End If
Loop
rst.Close
Set rst = Nothing
Set cdb = Nothing
但是当我运行它时,我的访问没有响应。如何使用 vba 检查列是否有任何空值
【问题讨论】:
-
为什么不
SQLEID = "SELECT sum(1) FROM [table_1] WHERE IsNull([column1])"并检查它返回的内容?甚至更短:If DCount(1, "table_1", "IsNull([column1])")>0 Then。还要检查拼写:SQLEID = "SELECT..."但cdb.OpenRecordset(sqlid ..)并添加Option Explicit -
您指定的查询 ** "SELECT sum(1) FROM [table_1] WHERE IsNull([column1])"** 返回 68。表示在集合中找不到项目
-
如果它返回 68,这意味着您有 68 条空值记录。现在有什么问题?
-
我使用了 If DCount,它运行良好。谢谢
标签: ms-access vba ms-access-2010