Mysql 组合框在子窗体中搜索所有匹配的记录

Mysql 组合框在子窗体中搜索所有匹配的记录,mysql,ms-access,combobox,vba,subform,Mysql,Ms Access,Combobox,Vba,Subform,我从我的一位同事那里借用了另一个Access数据库中的一些代码,通过从单独的“人员”表中搜索来搜索绑定到子窗体的表。我对语法有点生疏,所以我不确定如何更正代码以使其适用于我的程序 因此,一旦从组合框中选择了一个人,它应该在“vehicles”表中的“owner”字段中搜索所有匹配的记录并显示它们 Private Sub Form_Open(Cancel As Integer) Combo0.SetFocus End Sub Private Sub Combo0_AfterUpdate(

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

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

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

您可以更改记录源或子窗体的筛选器。 要筛选(我假设在vehicles表中有一个字符串类型的字段所有者):

要更改记录源,请执行以下操作:

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