使用ListBox在记录之间导航

问题描述 投票:0回答:1

我有一个 ListBox 在一个有文本框绑定到表格的表单中,这个表单是用来编辑记录的。这个表单是用来编辑记录的。ListBox 项来浏览记录。该操作类似于拆分表单的工作方式,但在这种情况下,我没有使用数据表,而是使用了一个 ListBox.

以下是我的代码。

Private Sub Form_Load()
Dim sqlstr As String
sqlStr = "SELECT CustomerStreet, CustomerName, Address FROM tblCustomers ORDER BY CustomerName"
Me.SearchListBox.RowSource = sqlStr
End Sub

Private Sub SearchListBox_AfterUpdate()
Dim str As DAO.Recordset
Dim strRecord As Integer

Set rs = Me.RecordsetClone
strRecord = rs.Fields("ID").Value

DoCmd.GoToRecord acDataForm, "frmEdit", acGoTo, strRecord

End Sub
vba ms-access access-vba
1个回答
1
投票

RecordsetClone只有在你使用FindFirst和Bookmark时才有用。你的代码只是使用第一条记录的ID,这不会正确应用Offset参数。这将无法正确应用Offset参数。

列表框需要ID字段。这一列可以用0宽度隐藏。输入一个项目的第一个字母将推进列表框项目。就像现在一样,用户必须键入客户街道的第一个字母,而不是客户名称。由于列表框RowSource不是动态过滤的,所以可以在列表框设计中加入它,而不是在Load事件中设置。SELECT ID, CustomerStreet, CustomerName, Address FROM tblCustomers ORDER BY CustomerName;

如果你想转到一个记录而不是过滤表单,类似这样。

Private Sub SearchList_AfterUpdate()
With Me.RecordsetClone
   .FindFirst "ID=" & Me.SearchListBox
   If Not .NoMatch Then Me.Bookmark = .Bookmark
End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.