我从我的一位同事那里借用了另一个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
答案 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)) & "'"