MS访问过滤器对子表单改变其他字段的值



我有一个数据表子表单,其组合框名称为Loan_ID_cbo。每当我通过组合框更新过滤器时,子表单都会使用子表单中选择的Laon ID更新Loan ID(主键),从而更改表上的数据。

我想只过滤这个数据,不允许过滤器编辑表上的数据。我怎样才能避免这种情况的发生?

这是我的VBA代码After_Update事件:

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

如果我理解正确,您的组合框在子表单数据表中。因此,组合框出现在每一行。

这可能是因为您的组合框绑定到Mykey字段。所以改变组合框会改变Mykey的值

您不应该在子表单中的myKey字段中创建过滤组合框,您应该在父表单中创建未绑定的组合框:

  1. 在子表单中,删除这个组合框,并添加一个新的文本框并将其绑定到Mykey。
  2. 在主表单上创建一个新的组合框,并使用这个组合框来过滤子表单。所以代码应该是这样的:

    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
    

最新更新