如何在单次访问报告中将 3 个连续行放入 3 个堆叠行中
Posted
技术标签:
【中文标题】如何在单次访问报告中将 3 个连续行放入 3 个堆叠行中【英文标题】:How to place 3 continuous row in to the 3 stacked row in single access report 【发布时间】:2019-03-23 15:53:37 【问题描述】:我有多个员工在不同月份的表格格式的工资数据,如第三张和第二张图片所示。 (目前在以下图像示例中为单个员工提取)。每个员工有 35 个薪水字段/列,并且不同类型的工作档案的薪水头不同。第 3 和第 2 图像代表所有工作资料员工的工资数据表。因为表格有很多列,所以我在第三张和第二张图片中只发布了一张表格的两个部分。根据员工的工作资料,还有其他字段具有 0 值或大于 0 的值。我创建了一个查询,以根据第三张和第二张图像从表中提取单个员工的季度数据。
第一张图片是结果,我想将其排列为堆叠格式。目前我的报告在此报告中仅显示单月数据。报告加载事件代码仅显示值大于 0 的磁头,如下所示:
Dim C As Control
For Each C In Me.Report
If TypeOf C Is TextBox Then
If IsNull(C) Or C = "" Or C = 0 Or C = "0" Then
C.Visible = False
C.Height = 0
Else
C.Visible = True
End If
End If
我想根据报告图像显示结果如下。是否可以放置3个堆叠柱?感谢您的帮助和任何建议。
示例图片:
【问题讨论】:
您尝试提供的示例无法访问。 igorM.. 示例链接工作 那么实际的问题是什么?获取季度组数据的唯一问题是什么?这些图像不是很有用,因为列名非常神秘,并且列不包含任何日期值。问题表明“第二张图片”与在单页上打印季度数据有关,但它只有一堆零值……在我看来完全没用。最后,预计 *** 会显示您尝试过的内容以及为什么它不起作用。不要只是发布需求并寻求解决方案。 C perkins,我编辑了我的问题以清除我的查询。感谢您的任何建议 @user2245124 如果您想通知某个用户的评论,请输入@
,后跟用户名...就像我为您的用户名所做的那样。否则他们可能永远不会知道你回复了。点击评论框旁边的帮助链接了解更多信息。
【参考方案1】:
考虑到您的表仅包含一年的工资,您可以对每个员工每季度的工资执行以下 SQL 查询
SELECT
EmployeeName
,SUM(IIF(Month([DateColumn]) BETWEEN 1 AND 3, Salary, 0)) AS Salary_Q1
,SUM(IIF(Month([DateColumn]) BETWEEN 4 AND 6, Salary, 0)) AS Salary_Q2
,SUM(IIF(Month([DateColumn]) BETWEEN 7 AND 9, Salary, 0)) AS Salary_Q3
,SUM(IIF(Month([DateColumn]) BETWEEN 10 AND 12, Salary, 0)) AS Salary_Q4
FROM TblSalary
GROUP BY EmployeeName
【讨论】:
MS Access 没有CASE WHEN
,您需要使用SWITCH
或IIF
。
您也可以使用iif(datepart("q", datecolumn)=1, Salary, 0)
等作为替代方案。
@igorM ...我想,你无法理解我的问题..我可以对查询进行分组,但问题是将 3 个月的行字段放在单个报告中的三列.. 每个报告的每个员工.. 看图片
@user2245124 提取月份的最简单方法通常是交叉表查询。完成所有其他工作,然后将报表底部设为子报表并绑定到交叉表查询。 crosstab和access下有很多在线教程
@mazoula 报告中有很多值字段要显示,交叉表只能显示单个值字段。所以请提供任何替代建议以上是关于如何在单次访问报告中将 3 个连续行放入 3 个堆叠行中的主要内容,如果未能解决你的问题,请参考以下文章