我有一个包含列
的访问表帐户ID,帐户描述,GL代码,年份,1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月。月份列保留金额。
我想如果用户在表单上选择Jan而不是帐户ID,则会显示帐户描述,G1代码,年份和Jan。类似地,如果用户选择2月而不是帐户ID帐户描述,则显示gl代码,年份和2月。同样适用于其他月份。
不知道如何做到这一点。据我所知,我们可以过滤行而不是列。
请建议是否有任何可能的解决方案。请注意,我无法更改数据库设计,因为数据是从ERP包中下载的。
答案 0 :(得分:1)
创建一个动态设置SQL的查询:
Dim qd As DAO.QueryDef
Dim SQL As String
Dim MonthName As String
MonthName = "Feb" ' Month to search.
Set qd = CurrentDb.QueryDefs("YourQuery")
SQL = "Select [GL Code], [year], [" & MonthName & "] As Amount From YourTable"
qd.SQL = SQL
现在,打开查询或使用查询作为源打开记录集。
仅限SQL :
Select
[GL Code],
[year],
IIf(MonthName = 'Jan', [Jan],
IIf(MonthName = 'Feb', [Feb],
IIf(MonthName = 'Mar', [Mar],
IIf(MonthName = 'Apr', [Apr],
IIf(MonthName = 'May', [May],
IIf(MonthName = 'Jun', [Jun],
IIf(MonthName = 'Jul', [Jul],
IIf(MonthName = 'Aug', [Aug],
IIf(MonthName = 'Sep', [Sep],
IIf(MonthName = 'Oct', [Oct],
IIf(MonthName = 'Nov', [Nov],
IIf(MonthName = 'Dec', [Dec])))))))))))) As Amount
From
YourTable