Ms access Access—如何在报告中将满足条件的字段名显示为列表
我目前正在做一个项目,为一个岛屿上的50个地点确定入侵植物物种。有500多种物种可能出现在任何地点,许多地点拥有100种或更多相同物种。我需要列出每个地点出现的所有物种,我认为为每个地点单独列出一个表是非常低效的,因为大多数地点都有许多相同的物种。因此,我创建了一个表,其中包含第一列中所有站点的所有物种标识,所有站点作为列名,以及带有二进制数据的表体;“Y”或“N”表示是否在各自的地点识别出物种。例如:Ms access Access—如何在报告中将满足条件的字段名显示为列表,ms-access,report,Ms Access,Report,我目前正在做一个项目,为一个岛屿上的50个地点确定入侵植物物种。有500多种物种可能出现在任何地点,许多地点拥有100种或更多相同物种。我需要列出每个地点出现的所有物种,我认为为每个地点单独列出一个表是非常低效的,因为大多数地点都有许多相同的物种。因此,我创建了一个表,其中包含第一列中所有站点的所有物种标识,所有站点作为列名,以及带有二进制数据的表体;“Y”或“N”表示是否在各自的地点识别出物种。例如: Scientific Name Old Wives Beach Da
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”?您需要规范化数据。正如您所看到的,将站点存储为列会有问题。 创建物种表:
Id
ScientificName
other data
Id
Name
站点的其他表格:
Id
ScientificName
other data
Id
Name
以及与上述表格相关的第三个表格:SpeciesInSites
SpecieId
SiteId
AnyOtherUsefulData
使用此数据结构,您将能够获得报告、摘要等。此外,如果您需要以列的形式报告站点,您可以使用or。可能有一个更优雅的解决方案,但以下是我将尝试的。这仅在尝试为单个站点运行报告时有效。如果你想要一个50页的报告,每个站点都在一个单独的页面上,这将不起作用 创建一个表单,将站点作为用户选择的下拉列表,并使用启动按钮打开报告。然后使用此算法启动报告: 子报表MakerClick() sitename=combobox.value sql=“从表中选择第一列,其中”&sitename&=“Y” 将报告的recordsource更新为sql 发布报告 端接头