【问题标题】:Create a ms access report using a combobox使用组合框创建 ms 访问报告
【发布时间】:2019-12-07 00:11:18
【问题描述】:

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

【问题讨论】:

    标签: ms-access combobox


    【解决方案1】:

    DoCmd.OpenReport 有一个可选的WhereCondition 参数。你可以做类似的事情

    DoCmd.OpenReport "RptSystemProfile", acViewPreview, _
        WhereCondition := "SystemID=" & cboSystem.Value    
    

    这假定系统由名为SystemID 的列标识(调整它以反映真实名称)。必须在报告所基于的查询中选择此列。它还假设此列是Long

    如果列是字符串,那么写

    DoCmd.OpenReport "RptSystemProfile", acViewPreview, _
        WhereCondition := "SystemID='" & cboSystem.Value & "'"
    

    还假定此 Id 是 Access ComboBoxBoundColumn 列。

    您可以让 ComboBox 显示文本但绑定到 id。 ComboBox 的行源将是一个类似于

    的查询
    SELECT SystemId, SystemName FROM tblSystem ORDER BY SystemName
    

    然后将BoundColumn 设置为1 并将ColumnWidths 设置为0cm。这会隐藏第一列并仅显示文本。

    然后组合框的Value 属性反映了所选系统的 ID。

    【讨论】:

    • 嗨,奥利维尔,感谢您的帮助。我第一次尝试时,报告中显示了针对单个系统的一些数据。之后,报告在报告中显示首字母缩写词,但没有其他信息。在 RptSystemProfile 记录源中,我在 3 个表中标识了 45 个字段。出于某种原因,我想我需要一个过滤器来显示与首字母缩略词关联的 3 个表中的所有数据。希望这会有所帮助。
    • 没有看到查询 (SQL) 很难提供更多细节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多