Access 2013在其rowsource

时间:2016-07-20 16:20:10

标签: ms-access access-vba ms-access-2013

我在表单上有一些组合框,我希望每个框RowSource引用我设置的标记。该标记将从表中过滤相应的下拉选项。

SELECT DropdownNames
FROM Table
WHERE DropdownCategory=[Screen].[ActiveForm]![Me].[Tag]

正确的语法是什么?使用标签是最好的方法吗?还是有更好的属性用于此目的?

1 个答案:

答案 0 :(得分:1)

这是我建议的例子。

Option Explicit

Private Sub Form_Load()

    Const DROPDOWN_SQL  As String = "SELECT DropdownNames FROM Table WHERE DropdownCategory = "
    Const DOUBLE_QUOTES As String = """"

    Dim ctl             As Control
    Dim strRowsource    As String

    For Each ctl In Me.Controls
        With ctl
            ' Only look at Tagged Combo Boxes
            If (.ControlType = acComboBox) And (.Tag <> "") Then
                ' Set Dropdown Row Source
                strRowsource = DROPDOWN_SQL & DOUBLE_QUOTES & .Tag & DOUBLE_QUOTES
                .RowSource = strRowsource
            End If
        End With
    Next

    Set ctl = Nothing
End Sub