0

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

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

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
4

1 回答 1

2

您可以更改记录源或子表单的过滤器。要过滤(我假设在车辆表中您有一个字符串类型的字段 Owner):

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)) & "'"
于 2013-10-17T08:33:51.520 回答