使下拉字段相互依赖

问题描述 投票:0回答:1

我设置了一个包含项目详细信息的表单,并希望实现几个下拉选项来过滤项目属性。这些是“项目名称”,“客户”和“产品”。我想让他们彼此依赖。因此,当我选择特定客户时,我只希望能够从与该客户相关的产品中进行选择。

到目前为止,我已经能够为每个项目属性设置每个下拉菜单,但是它们彼此之间并不相互依赖,而是始终显示所有可用选项。有人可以帮助我解决相关的下拉字段吗?

Selection fields as they are now

编辑:根据要求布置表格:

行/格式-项目编号-客户/字符串-产品/线-项目名称/字符串-注释/字符串-功能1 /字符串

ms-access ms-access-2016
1个回答
0
投票

一种使用“级联”组合框的方式,因此用户每次从顶部组合框向底部组合框移动时,都会缩小其可用范围。

您的VBA代码看起来像这样:

Private Sub cboCustomer_AfterUpdate()
    Dim strSQL As String
    If Len(Me!cboCustomer) > 0 Then
        strSQL = "SELECT DISTINCT Product FROM tblProject " _
            & " WHERE Customer='" & Me!cboCustomer & "' " _
            & " ORDER BY Product ASC;"
        Me!cboProduct.RowSource = strSQL
    Else
        strSQL = "SELECT DISTINCT Product FROM tblProject ORDER BY Product ASC;"
    End If
End Sub

Private Sub cboProject_AfterUpdate()
    Dim strSQL As String
    If Len(Me!cboProject) > 0 Then
        strSQL = "SELECT DISTINCT Customer FROM tblProject " _
            & " WHERE ProjectID=" & Me!cboProject _
            & " ORDER BY Customer ASC;"
        Me!cboCustomer.RowSource = strSQL
        strSQL = "SELECT DISTINCT Product FROM tblProject " _
            & " WHERE ProjectID=" & Me!cboProject _
            & " ORDER BY Product ASC;"
        Me!cboProduct.RowSource = strSQL
    Else
        Me!cboCustomer.RowSource = "SELECT DISTINCT Customer FROM tblProject ORDER BY Customer ASC;"
        Me!cboProduct.RowSource = "SELECT DISTINCT Product FROM tblProject ORDER BY Product ASC;"
    End If
End Sub

问候,

© www.soinside.com 2019 - 2024. All rights reserved.