MS access:openrecordset中的参数并检查它是否为null

时间:2015-07-29 22:58:15

标签: vba ms-access

我正在尝试下面这样的事情

formName = "CutomerF"
 checkboxName = "Check110"
 Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM CheckBoxT WHERE [Form Name] = " & formName & " AND [Checkbox Name] = " & checkboxName)

查询后,我想检查rs是否为null?如果它不为null那么它有多少个元素?我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可以使用BOF属性查看记录集是否有任何记录。您可以使用RecordCount查看它有多少条记录。使用DAO记录集时,首先应使用.MoveLast方法,例如

If rs.BOF Then <Do Something>

rs.MoveLast
MsgBox "There are " & rs.RecordCount & " records."

答案 1 :(得分:0)

使用rs.RecordCount属性。

IF rs.recordCount > 0 then 
   rs.movelast
   msg "There are " & rs.recordCount & " record(s)"
end if

在DAO中打开包含记录的记录集时,RecordCount的值为1.如果没有记录或者无法确定是否有记录值为0.在ADO中,如果没有记录或者无法确定记录数RecordCount将返回-1。检查大于0的方式将确定您是否有ADO和DAO的记录。

单独使用的BOF和EOF对ADO不起作用,你可以这样做,但是你必须进行两次检查。如果在打开记录集时它们都为true,则记录集为空。当ADO记录集打开且没有记录时,BOF和EOF都设置为true。 https://msdn.microsoft.com/en-us/library/windows/desktop/ms675787(v=vs.85).aspx