首页 文章

如何以显示/隐藏查询列的形式制作vba代码? (MS-访问)

提问于
浏览
2

我是一个非常新的使用Access,我在编写VBA代码时会遇到这样的问题:

Private Sub YesNoShowHide ()

        If DateTested_checkbox = 'yes'
            Then show 'DateTested' column in 'search query' query
        Else DateTested_checkbox = 'no'
            Then hide 'DateTested' column in 'search query' query 
End Sub

我有一个数据库,其表单将通过在文本框中键入关键字来执行“自定义搜索”,然后点击搜索,但关键字将进入查询 . 我有很多字段,并希望根据表单中的复选框创建一个显示或隐藏查询中的列的选项 .

任何帮助或建议将不胜感激

表格和查询图片:

enter image description here

2 回答

  • 0

    您可以使用 QueryDefs.Fields.Properties 集合访问查询列来显示和隐藏查询列 .

    您可以通过以下方式使用它:

    CurrentDb.QueryDefs("search query").Fields("DateTested").Properties("ColumnHidden") = True
    

    请注意,这将不会更改打开的查询,直到它被刷新,并将永久更改查询 . 如果要阻止永久修改查询,可以执行以下操作:

    CurrentDb.QueryDefs("search query").Fields("DateTested").Properties("ColumnHidden") = True
    DoCmd.OpenQuery "search query"
    CurrentDb.QueryDefs("search query").Fields("DateTested").Properties("ColumnHidden") = False
    
  • 0

    您正在寻找 ColumnHiddenCheckBox.Value 属性 . 你的示例sub看起来像这样:

    Private Sub YesNoShowHide()
    
            If Forms!Search_form.DateTested_checkbox.Value = True Then
                Forms!Search_form.DateTested.ColumnHidden = False
            Else
                Forms!Search_form.DateTested.ColumnHidden = True
            End If
    
    End Sub
    

    复选框对象的 .Value 在选中时为 True ,而在未选中时为 False . 将 Search_form 替换为您的表单名称 .

相关问题