首页 文章

在MSAccess中根据用户标准选择要显示的列

提问于
浏览
0

我有一个带列的访问表

帐户ID,帐户描述,GL代码,年份,1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月 . 月份列保存金额 .

我想如果用户在表单上选择Jan而不是帐户ID,则会显示帐户描述,G1代码,年份和Jan . 类似地,如果用户选择2月而不是帐户ID帐户描述,则显示gl代码,年份和2月 . 同样适用于其他月份 .

不知道如何做到这一点 . 据我所知,我们可以过滤行而不是列 .

请建议是否有任何可能的解决方请注意,我无法更改数据库设计,因为数据是从ERP包下载的 .

1 回答

  • 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 only

    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
    

相关问题