Ms access 使用组合框创建ms access报告

Ms access 使用组合框创建ms access报告,ms-access,combobox,Ms Access,Combobox,一个月来,我一直在YouTube上学习MS Access。我创建了一个MS Access报告,其中显示了库存中45个不同系统的三个表中的所有必需信息。我想创建一个组合框,以便只为特定系统生成报告,而不是像现在这样为所有45个系统生成报告。数据库由称为首字母缩略词的数据字段连接。我可以创建一个带有显示首字母缩略词的组合框的表单,并可以在组合框中选择首字母缩略词。我不知道如何将特定的首字母缩略词连接起来,以便只生成该首字母缩略词的报告。该报告称为RptSystemProfile DoCmd.Open

一个月来,我一直在YouTube上学习MS Access。我创建了一个MS Access报告,其中显示了库存中45个不同系统的三个表中的所有必需信息。我想创建一个组合框,以便只为特定系统生成报告,而不是像现在这样为所有45个系统生成报告。数据库由称为首字母缩略词的数据字段连接。我可以创建一个带有显示首字母缩略词的组合框的表单,并可以在组合框中选择首字母缩略词。我不知道如何将特定的首字母缩略词连接起来,以便只生成该首字母缩略词的报告。该报告称为RptSystemProfile

DoCmd.OpenReport有一个可选的
WhereCondition
参数。你可以这样做

DoCmd.OpenReport "RptSystemProfile", acViewPreview, _
    WhereCondition := "SystemID=" & cboSystem.Value    
这假设系统由一个名为
SystemID
的列标识(调整它以反映真实名称)。必须在报告所基于的查询中选择此列。它还假定此列为

如果列是字符串,则写入

DoCmd.OpenReport "RptSystemProfile", acViewPreview, _
    WhereCondition := "SystemID='" & cboSystem.Value & "'"
还假定此Id是的
BoundColumn

您可以让组合框显示文本,但要绑定到id。组合框的行源将是类似于的查询

SELECT SystemId, SystemName FROM tblSystem ORDER BY SystemName
然后将
BoundColumn
设置为
1
,将
ColumnWidths
设置为
0cm
。这将隐藏第一列并仅显示文本


组合框的
属性将反映所选系统的Id。

你好,奥利维尔,感谢您的帮助。第一次尝试时,报告中显示了单个系统的一些数据。之后,报告将在报告中显示首字母缩略词,但不显示其他信息。在RptSystemProfile记录源中,我在3个表中标识了45个字段。出于某种原因,我想我需要一个过滤器来显示与首字母缩略词相关的3个表中的所有数据。希望这能有所帮助。如果看不到查询(SQL),很难给出更多细节。