【问题标题】:Access - How to display field names that meet a condition as a list in a reportAccess - 如何将满足条件的字段名称显示为报表中的列表
【发布时间】:2017-08-30 02:39:54
【问题描述】:

我目前正在开展一个项目,该项目旨在识别岛上 50 个地点的入侵植物物种。任何地点都可能出现 500 多种物种,其中许多地点拥有 100 多种或更多相同的物种。我需要列出每个站点上出现的所有物种,我认为为每个站点设置一个单独的表格会非常低效,因为大多数站点都有许多相同的物种。因此,我创建了一个表,其中包含为第一列中的所有站点识别的所有物种,所有站点作为列名,以及带有二进制数据的表主体; “Y”或“N”表示是否在相应地点确定了物种。示例:

 Scientific Name         Old Wives Beach    Dadi      Orote N Airstrip
 Abelmoschus moschatus   N                  N         N
 Abrus precatorius       Y                  N         Y
 Abutilon indicum        N                  N         N

我想不出在 Access 的报表中显示这些数据的有效方法。问题在于,此表中有意义的数据实际上位于列名中,而不是 Access 从中提取以创建报表的表的一部分。有没有办法在 Access 的报告中列出每个记录(站点)的列名(物种),其中有一个“Y”?

【问题讨论】:

    标签: ms-access report


    【解决方案1】:

    您需要标准化您的数据。如您所见,将站点存储为列将是有问题的。 为物种创建表格:

    Id
    ScientificName
    other data
    

    网站的其他表格:

    Id
    Name
    

    还有与上述表格相关的第三个表格:SpeciesInSites

    SpecieId
    SiteId
    AnyOtherUsefulData
    

    使用此数据结构,您将能够获得报告、摘要等。此外,如果您需要将网站报告为列,您可以使用pivot querypivot table

    【讨论】:

      【解决方案2】:

      可能有更优雅的解决方案,但这是我会尝试的。这仅在您尝试为单个站点运行报告时才有效。如果您想要一份 50 页的报告,其中每个站点都位于单独的页面上,这将不起作用。

      创建一个表单,其中包含站点作为用户选择的下拉列表和用于打开报告的启动按钮。然后使用此算法启动报告:

      sub ReportMakerclick()

      站点名称 = 组合框值

      sql = "SELECT FirstColumn From YourTable WHERE " & sitename & " = ""Y"" "

      将报表的记录源更新为sql

      启动报告

      结束子

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-23
        相关资源
        最近更新 更多