使用vba访问ms access中的字段

使用vba访问ms access中的字段,vba,ms-access,Vba,Ms Access,我有表“customer”该表包含多个字段,需要通过示例字段“phone no”检查其中一个字段,如果包含空值,则显示msgbox“有空值”,如果不包含空值,则显示msgbox“ok” 检查表“客户”中的字段“电话号码”。如果字段“电话号码”的任何一行包含空值或不包含空值,则数据在表中 Set db = CurrentDb Dim x As String Dim rs As dao.Recordset Set rs = db.OpenRecordset("SELECT [phone no] FR

我有表“customer”该表包含多个字段,需要通过示例字段“phone no”检查其中一个字段,如果包含空值,则显示msgbox“有空值”,如果不包含空值,则显示msgbox“ok” 检查表“客户”中的字段“电话号码”。如果字段“电话号码”的任何一行包含空值或不包含空值,则数据在表中

Set db = CurrentDb
Dim x As String
Dim rs As dao.Recordset
Set rs = db.OpenRecordset("SELECT [phone no] FROM customer;")
Set x = rs
If x = Null Then
MsgBox "There is space"
Else
MsgBox "There is no space"
End If
end sub```

不能在等式表达式中直接使用Null。没有什么可以比较的,甚至不是
Null=Null
。使用
Nz()
IsNull()
,或仅用于查询
Is Null

实际上,由于x变量被声明为String,并且String不能保持Null,所以对Null的任何测试都会失败。不需要x变量或记录集。域聚合函数可以返回数据为null的记录计数。如果没有匹配项,则0将返回

MsgBox "There are " & DCount("*", "Customers", "IsNull([phone no])") & " records without phone number."
请记住,空字符串与Null不同。若字段有空字符串,则它不会计为Null。建议不要在字段中使用空字符串。以下内容将同时处理Null或空字符串:

MsgBox "There are " & DCount("*", "Customers", "Nz([phone no],'')=''") & " records without phone number."

不能在等式表达式中直接使用Null。没有什么可以比较的,甚至不是
Null=Null
。使用
Nz()
IsNull()
,或仅用于查询
Is Null

实际上,由于x变量被声明为String,并且String不能保持Null,所以对Null的任何测试都会失败。不需要x变量或记录集。域聚合函数可以返回数据为null的记录计数。如果没有匹配项,则0将返回

MsgBox "There are " & DCount("*", "Customers", "IsNull([phone no])") & " records without phone number."
请记住,空字符串与Null不同。若字段有空字符串,则它不会计为Null。建议不要在字段中使用空字符串。以下内容将同时处理Null或空字符串:

MsgBox "There are " & DCount("*", "Customers", "Nz([phone no],'')=''") & " records without phone number."

从tablename中选择count(*),其中[filedname]为空然后检查
rs.Fields(0)。值
谢谢,但这个代码用于计算字段?!我需要显示msgbox,如果字段包含null或不包含null,,,,你能解释更多吗?你的问题不清楚你想做什么:在你的代码中,你为表中的所有记录选择字段值。你想看哪些记录?其中一个?都是吗?我的建议是计算表中有多少条记录的该字段值为空。如果您需要其他内容,请解释您要查找的内容。好的,我有表“customer”该表包含多个字段,需要通过示例字段“phone no”检查其中一个字段,如果包含空值,则显示msgbox“there are are null value”,如果不包含空值,则显示msgbox“ok”
msgbox“Found”&rs.Fields(0)。值&“字段'&filedname&''中的空值”
从[filedname]为空的tablename中选择count(*;
然后检查
rs.Fields(0).Value
谢谢,但此代码用于计数字段?!如果字段是否包含null,我需要显示msgbox,,,,你能解释一下吗?你的问题不清楚你想做什么:在你的代码中,你为表中的所有记录选择字段值。你想查看哪些记录?其中一个?所有?我的“建议”可计算表中有多少条记录的该字段值为空。如果需要其他内容,请解释您要查找的内容。好的,我有表“customer”该表包含多个字段,需要通过示例字段“phone no”检查其中一个字段,如果包含空值,请显示msgbox“there are null value”如果不包含空值,则显示msgbox“确定”
msgbox“找到”和rs.Fields(0)。值和“字段中的空值”&&filedname&“”