我有三个子格式我想过滤 - 我们称之为客户,项目和员工。我想在双击Address_ID后根据第四个表单Addresses对它们进行排序。所以基本上禁用这些表单,直到选择了Address_ID,然后根据给定的地址填充它们。
麻烦在于我不确定编码的位置或内容。我假设我需要在Address_ID控件上创建一个Double_Click事件。也许将该ID存储到变量中并以某种方式将其传递给父表单,其他3个表单可以引用它?
问题是我不知道如何完成它或者它是否会起作用。
答案 0 :(得分:3)
您可以在地址子表单上创建Form_Current事件,并从每个子表单更新记录源(不是记录集)。这是我个人的首选方法,但有很多方法可以解决这种情况。以下是有关如何处理此问题的示例代码。
Private Sub Form_Current()
Dim addressID As Integer
Dim sql As String
If IsNull(Me.addressID.Value) Then
'disable subforms
Form_frmHome.sbfCustomer.Enabled = False
Form_frmHome.sbfEmployee.Enabled = False
Form_frmHome.sbfItem.Enabled = False
Else
'enable subforms
Form_frmHome.sbfCustomer.Enabled = True
Form_frmHome.sbfEmployee.Enabled = True
Form_frmHome.sbfItem.Enabled = True
addressID = Me.addressID.Value
'Customers
sql = "SELECT * FROM tblCustomers WHERE AddressID = " & addressID
Form_frmHome.sbfCustomer.Form.RecordSource = sql
'Employees
sql = "SELECT * FROM tblEmployees WHERE AddressID = " & addressID
Form_frmHome.sbfEmployee.Form.RecordSource = sql
'Items
sql = "SELECT * FROM tblItems WHERE AddressID = " & addressID
Form_frmHome.sbfItem.Form.RecordSource = sql
End If
End Sub
答案 1 :(得分:0)
展开三个子窗体控件的Master / Link子字段以包含第四个的Address_ID:
[NameOfTheFourthSubformControl].Form!Address_ID
并且三个子表单将自动过滤(零代码)到当前的Address_ID。
NameOfTheFourthSubformControl 是父表单上的控件,而不是子表单本身的名称。