只是好奇是否可以在Access中过滤字段?还是有VBA代码允许基于if语句选中或取消选中查询中的“显示”框?
基本上,我的数据库中大约有80个字段,我想根据组合框中的值创建一个只有3个字段的表。 2个始终相同,第3个将基于组合框。
我可以这样做吗?
答案 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注入。不确定用户群的友好程度。