我在Access中创建了一个弹出表单,以搜索记录并在主输入表单上转到它。弹出的“查找”表单具有一个列表框,其中包含所有在主条目表单中的记录,并且该列表框的第一列是主条目表单上的ID。这是列表框上的隐藏列。
用户可以在未绑定的文本框中键入内容,该文本框将过滤列表框,然后,一旦他们看到所需的记录,他们应该能够双击列表框的一行,然后将其带到该记录在主输入表格上。我遇到错误,不确定为什么。
这是双击列表框的代码:
Private Sub lstRecords_DblClick(Cancel As Integer)
Dim rs As DAO.Recordset
Set rs = Forms!frmMainEntry.Form.RecordsetClone
rs.MoveFirst
rs.FindFirst "[ID] = " & Forms!frmFindRecords.lstRecords.Column(0)
If Not (rs.BOF And rs.EOF) Then
'Display the found record in the form.
Forms!frmMainEntry.Form.Bookmark = rs.Bookmark
Forms!frmMainEntry.Form.cboJumpToRecord = Forms!frmFindRecords.lstRecords.Column(0)
Forms!frmMainEntry.Form.cboJumpToRecord.Requery
cmdClose_Click
Else
MsgBox "Weird, I can't find that record. Tell Someone!"
End If
Set rs = Nothing
End Sub
当我尝试选择某些内容时,出现以下错误: 运行时错误'2473':作为事件属性设置输入的表达式| 2产生以下错误:| 1。
它突出显示了上面代码的这一行:
Forms!frmMainEntry.Form.Bookmark = rs.Bookmark
就像它没有保留其他形式的记录集一样。我可以看到主窗体看起来像是短暂地转到了该记录,但是随后我认为该窗体正在检查/重置它的记录集,因为它必须检查将按钮设置为打开状态的切换按钮。那种形式。
我不知道该如何解决。有什么想法吗?
谢谢!
答案 0 :(得分:0)
所以我找不到在哪里找到这个(大声笑),但是我找到了一个非常优雅的解决方案,似乎效果很好:
Private Sub lstRecords_DblClick(Cancel As Integer)
Forms!frmMainEntry.Recordset.FindFirst "[ID] = " & Forms!frmFindRecords.lstRecords.Column(0)
Forms!frmMainEntry.Form.cboJumpToRecord = Forms!frmFindRecords.lstRecords.Column(0)
Forms!frmMainEntry.Form.cboJumpToRecord.Requery
cmdClose_Click
End Sub
没有更多错误!