我有一个带有组合框名称Loan_ID_cbo的数据表子表单。每当我通过组合框更新过滤器时,子表单都会使用子表单中选定的Laon ID更新贷款ID(主键),从而更改表格中的数据。
我想只过滤此数据,不允许过滤器编辑表格中的数据。我怎样才能防止这种情况发生?
以下是After_Update事件的VBA代码:
Private Sub Loan_ID_cbo_AfterUpdate()
Application.Echo False
Me.Filter = "MyKey = '" & Loan_ID_cbo & "'"
Me.FilterOn = True
If Loan_ID_cbo = "" Then
Me.Filter = ""
Me.FilterOn = False
End If
Application.Echo True
End Sub
答案 0 :(得分:2)
如果我理解正确,你的组合框就在子表数据表中。因此,组合框出现在每一行上。
确实发生这种情况可能是因为你的组合框被绑定到了Mykey字段。因此,更改组合框确实会改变Mykey的值。
您不应该从子窗体中的myKey字段中创建过滤组合框,您应该在父窗体中创建一个未绑定的组合框:
在您的主窗体上,创建一个新的组合框并使用此组合来过滤您的子窗体。所以代码就像:
Private Sub Loan_ID_cbo_AfterUpdate()
Application.Echo False
Me.subformname.Form.Filter = "MyKey = '" & Loan_ID_cbo & "'"
Me.subformname.Form.FilterOn = True
If Loan_ID_cbo = "" Then
Me.subformname.Form.Filter = ""
Me.subformname.Form.FilterOn = False
End If
Application.Echo True
End Sub