Access - 如何将满足条件的字段名称显示为报表中的列表
Posted
技术标签:
【中文标题】Access - 如何将满足条件的字段名称显示为报表中的列表【英文标题】:Access - How to display field names that meet a condition as a list in a report 【发布时间】: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”?
【问题讨论】:
【参考方案1】:您需要标准化您的数据。如您所见,将站点存储为列将是有问题的。 为物种创建表格:
Id
ScientificName
other data
网站的其他表格:
Id
Name
还有与上述表格相关的第三个表格:SpeciesInSites
SpecieId
SiteId
AnyOtherUsefulData
使用此数据结构,您将能够获得报告、摘要等。此外,如果您需要将网站报告为列,您可以使用pivot query 或pivot table。
【讨论】:
【参考方案2】:可能有更优雅的解决方案,但这是我会尝试的。这仅在您尝试为单个站点运行报告时才有效。如果您想要一份 50 页的报告,其中每个站点都位于单独的页面上,这将不起作用。
创建一个表单,其中包含站点作为用户选择的下拉列表和用于打开报告的启动按钮。然后使用此算法启动报告:
sub ReportMakerclick()
站点名称 = 组合框值
sql = "SELECT FirstColumn From YourTable WHERE " & sitename & " = ""Y"" "
将报表的记录源更新为sql
启动报告
结束子
【讨论】:
以上是关于Access - 如何将满足条件的字段名称显示为报表中的列表的主要内容,如果未能解决你的问题,请参考以下文章