ms-access - 访问 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
解决方案
您应该使用.EOF
来检测是否有记录。如果记录集位于文件的末尾(没有记录),这是正确的,并且如果它在您刚刚打开文件时位于文件的末尾,则它不包含任何记录。
If Not VESRecordSet.EOF Then
Var = VESRecordSet.Fields(0).Value
Else
Var = "100"
End If
推荐阅读
- msbuild - MSBuild Force Item Include 被视为自定义/文字
- python-2.7 - Python2.7:我可以为 ODE 求解器中雅可比行列式的前向差分近似设置步长吗?
- c++ - tcp & ipc 的 zmq_bind 段错误
- r - 不包含父目录的 zip 文件
- ruby-on-rails - 使用 Mina 时无法通过 ssh 连接到服务器
- ruby - Ruby 中的指针
- azure - Azure KeyVault:SPN KeyVault 访问被拒绝
- java - postgresql / 真空中的大量活/死元组不起作用
- javascript - 无法获取 /blah.html - .ejs 无法加载 html?
- vba - 禁用文本框字体颜色