数据表视图中的 MS Access 表单交叉表查询
Posted
技术标签:
【中文标题】数据表视图中的 MS Access 表单交叉表查询【英文标题】:MS Access Form in Datasheet view Crosstab query 【发布时间】:2020-02-26 21:36:28 【问题描述】:我有一个 Access 表单,允许用户从多个来源提取预测数据和历史数据。历史数据使用交叉表查询 qryHistoricalOverview 进行汇总,以管理可以选择的可变日期数。然后,我使用选择查询 qryODLaneSummary 将历史数据和预测数据连接在一起。如何将此查询用作记录源以在数据表视图中显示所有历史字段?我尝试从另一个解决方案修改的当前代码未返回任何内容。
Dim i As Integer
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("qryODLaneSummary", dbOpenDynaset)
i = 0
While i < rs.Fields.count - 1
Debug.Print rs.Fields(i).Name
i = i + 1
Loop
我看到的另一个选项涉及添加控件,但我担心删除然后添加所有控件的处理时间。
我在下面发布了一些示例数据。日期列是可变金额。我让用户选择他们想要查看的日期。我可以限制日期的数量,但如果可能的话,我想提供灵活性。
Orig Dest Plan Plan Pos 12/10/2019 12/11/2019 12/12/2019 12/13/2019
8711L 7649N 0.38 0.38 0.2 0.2 0.1 0.3
8719T 7649N 0.38 0.38 0.25 0.25 0.3 0.3
【问题讨论】:
基于动态交叉表查询构建一个稳定的报表很棘手,但可以做到。查看access.hookom.net/DynamicMthlyCrosstabRpt.htm。您的代码在哪里?提供示例数据和 SQL 语句。 编辑问题以将数据显示为文本表以及 SQL 语句。 如果底层记录源有子查询或堆叠多个查询,则访问交叉表查询会出错。错误消息各不相同且无济于事。修复方法是用表替换 Cross-Tab 查询的记录源。在设计器中,从 Select 选项卡切换到 Make Table 选项卡,并将生成的表用作跨表查询的记录源。如果有帮助,请点赞此评论。 抱歉回复延迟。 Mazoula 我仍在处理制作表的下线效果。 @mazoula 制作表格是我能找到解决问题的唯一方法,但现在我似乎无法将问题标记为已回答。 【参考方案1】:如果基础记录源具有子查询或堆叠多个查询,则 Access Cross-Tab 查询会出错。错误消息各不相同且无济于事。
解决方法是将交叉表查询的记录源替换为表。在设计器中,从 Select 选项卡切换到 Make Table 选项卡,并将生成的表用作跨表查询的记录源。
【讨论】:
以上是关于数据表视图中的 MS Access 表单交叉表查询的主要内容,如果未能解决你的问题,请参考以下文章