禁用子表单的多记录导航

Posted

技术标签:

【中文标题】禁用子表单的多记录导航【英文标题】:Disable multiple record navigation for sub-form 【发布时间】:2015-03-09 17:30:08 【问题描述】:

在开发人员突然退出并且没有留下任何文档后,我正在对工具进行最后润色。除了以下问题,我已经能够解决所有问题。

我正在使用来自选择查询的数据创建条形图:

Date     Facility     Bucket     Variance
2/5/15   A            >$10k >90  -2.1234
2/5/15   A            >90        -10.567
...      ...          ...        ...

使用图表向导,我选择数据:方差、轴:桶、链接字段:设施、日期(用户可以从主窗体中选择这些)。

图表本身看起来非常好,但在主窗体中出现了一个导航栏,让我可以选择在 6 条记录之间切换。切换不会改变图形、形状或形式。

http://i.imgur.com/qq6xiqi.png

虽然我可以禁用/隐藏该栏,但无论是什么让它相信有六个独特的记录都会在打印或发送到 PDF 时打印相同的图表 6 次。

http://i.imgur.com/la9JBCs.png

知道是什么原因造成的,我该如何预防?

谢谢!

编辑:我应该补充一点,设施和存储桶有 6 个唯一值。 Date、Facility 和 Bucket 构成了他们表的主键。

EDIT2:是 Bucket 造成的。将设施过滤器表与查询连接起来没有任何作用。

EDIT3:记录源查询

SELECT tbl_Trending_Data.Date, tbl_Trending_Data.Facility, tbl_Trending_Data.Bucket, IIf([Target] Is Null,Null,[Days]-[Target]) AS Variance
FROM tbl_Facility_Filter INNER JOIN tbl_Trending_Data ON tbl_Facility_Filter.Facility = tbl_Trending_Data.Facility
ORDER BY tbl_Trending_Data.Bucket;

【问题讨论】:

听起来您的表单的记录源需要修改,以便它只产生 1 条记录而不是 6 条记录。也许您可以发布记录源查询? (假设它是一个查询) 没问题!在上面添加。 【参考方案1】:

将您的记录源查询更改为:

SELECT TOP 1 tbl_Trending_Data.Date, tbl_Trending_Data.Facility,
tbl_Trending_Data.Bucket, IIf([Target] Is Null,Null,[Days]-[Target]) AS Variance
FROM tbl_Facility_Filter 
INNER JOIN tbl_Trending_Data 
   ON tbl_Facility_Filter.Facility = tbl_Trending_Data.Facility
ORDER BY tbl_Trending_Data.Bucket;

您需要将其限制为 TOP 1,以便您只查看第一行。这将阻止程序打印多条记录/图表。

【讨论】:

啊当然,SELECT TOP 只是为了表单的来源!那工作得很好。非常感谢!

以上是关于禁用子表单的多记录导航的主要内容,如果未能解决你的问题,请参考以下文章

在 MS Access 数据表子表单中导航和更新

在另一个子表单中编辑数据时禁用子表单

主窗体记录更改时从子窗体移动焦点

Access 2007 不允许用户删除子表单中的记录

从子窗体访问去记录

为啥我不能从 VBA 中的多实例表单中获取当前记录 ID