Combobox在子表单中搜索所有匹配的记录

时间:2013-10-15 16:59:12

标签: mysql ms-access combobox access-vba subform

我从我的一位同事那里借用了另一个Access数据库中的一些代码,只需通过从单独的“people”表中搜索来搜索绑定到子表单的表。我的语法有点生疏,所以我不确定如何纠正代码以使其适用于我的程序。

因此,一旦从组合框中选择了一个人,就应该在“车辆”表中搜索所有匹配记录的“所有者”字段并显示它们。

Private Sub Form_Open(Cancel As Integer)
    Combo0.SetFocus
End Sub

Private Sub Combo0_AfterUpdate()

    ' Find the record that matches the control.
    Dim rs As DAO.Recordset

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[Owner.vehicles] = '" & Str(Nz(Me![Combo0], 0)) & "'"
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark

    Forms!frmVehReg!subFrmVehReg.SetFocus

    Forms!frmVehReg!subFrmVehicles.Form!Make.SetFocus


End Sub

1 个答案:

答案 0 :(得分:2)

您可以更改记录源或子窗体的过滤器。 要过滤(我假设在veh表中你有一个字符串类型为字符串的所有者):

Forms!frmVehReg!subFrmVehicles.Form.Filter = "Owner = '" & Str(Nz(Me![Combo0], 0)) & "'"

更改记录来源:

Forms!frmVehReg!subFrmVehicles.Form.RecordSource = "Select * from vehicles where Owner = '" & Str(Nz(Me![Combo0], 0)) & "'"