按字段访问过滤器

时间:2018-11-02 16:00:56

标签: sql vba ms-access access

只是好奇是否可以在Access中过滤字段?还是有VBA代码允许基于if语句选中或取消选中查询中的“显示”框?

基本上,我的数据库中大约有80个字段,我想根据组合框中的值创建一个只有3个字段的表。 2个始终相同,第3个将基于组合框。

我可以这样做吗?

1 个答案:

答案 0 :(得分:1)

您可以通过更改要修改的查询对象的SQL来执行此操作。因此,如果您的查询对象名为“ qryMyQ”,而组合框对象名为“ cboDropDown”,则VBA将是组合框的AfterUpdate事件,如下所示:

Private Sub cboDropDown_AfterUpdate()
    Dim qryDef As QueryDef
    Dim sql As String

    Set qryDef = CurrentDb.QueryDefs("qryMyQ")

    sql = "SELECT [Column1], [Column2], [" & cboDropDown.Value & _ 
          "] FROM yourTableName " & _
          " WHERE [" & cboDropDown.Value & "] = ""applicable"""

    Debug.Print sql 'This line will allow you to troubleshoot the SQL that is to be executed.'
    qryDef.sql = sql

    Set qryDef = Nothing
End Sub

这里只是一个注释;但是您要确保用户不能添加或编辑组合框选项,以避免SQL注入。不确定用户群的友好程度。