Access 2021 VBA:双击搜索列表项跳转对应记录问题
Access 2021 VBA 实现窗体跳转至指定ID记录的解决方案
方法一:使用窗体记录集的FindFirst方法
正确代码示例:
' 先确认目标窗体已打开 If CurrentProject.AllForms("frmMyForm").IsLoaded Then Forms!frmMyForm.Recordset.FindFirst "[ID] = " & Me.lstItems.Value ' 无匹配记录时提示用户 If Forms!frmMyForm.Recordset.NoMatch Then MsgBox "未找到对应ID的记录" End If End If
你之前代码的错误点:
- 直接写
frmMyForm会被当作未定义变量,必须通过Forms!引用已打开的窗体对象 - 把
Me.lstItems.Value放在单引号内,变成了固定字符串而非实际ID值 - ID是数字类型时,无需使用
LIKE,直接用=匹配更准确高效
方法二:使用DoCmd.SearchForRecord(Access 2010及以上版本支持)
这种写法更简洁,无需直接操作记录集:
DoCmd.SearchForRecord acDataForm, "frmMyForm", acFirst, "[ID] = " & Me.lstItems.Value
参数说明:
acDataForm:指定操作对象为窗体"frmMyForm":目标窗体的名称acFirst:从第一条记录开始查找匹配项- 最后一项为查找条件,语法和FindFirst一致
额外注意
如果你的ID字段是文本类型,需要给ID值添加单引号,条件写法改为:
"[ID] = '" & Me.lstItems.Value & "'"
另外必须保证frmMyForm处于打开状态,否则会触发报错。
内容的提问来源于stack exchange,提问作者Shaun.M
相关产品推荐
相关产品推荐

