首页 > 解决方案 > 访问 VBA:没有当前记录

问题描述

在我的 Access DB 中,我设置了一个 VBA 代码,用于查找在名为FieldB. 如果记录存在,则变量Var采用 field 的值FieldA,否则采用默认值100

我写的代码如下。问题是,当记录不存在时,我No current record在 command 处得到错误IsNull(VESRecordSet.Fields(0).Value)。我想这段代码有一些错误,可以用更好的方式编写。

sql = " SELECT * FROM TableA WHERE FieldB = 'current_value');"
Set VESRecordSet = CurrentDb.OpenRecordset(sql)

If IsNull(VESRecordSet.Fields(0).Value) Then
    Var = VESRecordSet.Fields(0).Value
Else
    Var = "100"
End If

标签: ms-accessvba

解决方案


您应该使用.EOF来检测是否有记录。如果记录集位于文件的末尾(没有记录),这是正确的,并且如果它在您刚刚打开文件时位于文件的末尾,则它不包含任何记录。

If Not VESRecordSet.EOF Then
    Var = VESRecordSet.Fields(0).Value
Else
    Var = "100"
End If

推荐阅读