MS Access报告中的数据动态排序

时间:2013-01-25 16:37:59

标签: ms-access ms-access-2010

所以,我有这份报告:

Routing Documents

这个查询:

Routing Query

该报告从查询中提取所有数据。字段STA1,STA2,STA3和STA4来自作业订单表,其中每个作业具有基于工作站(命名CU01,CU02,BR01 ...)设置的订单。

我试图制作基本上说

的宏
  

如果报告![生产路由器LBPW]![工作站1] =“CU01”然后报告![生产路由器LBPW]![运行时间1] =查询![以P / N查询激光时间]![总计激光时间]

如果我理解得当,一系列这样的陈述基本上可以将每个工作站与特定类型的时间数据(切割,弯曲,插入和焊接)相关联,有效地重新排列我的字段以自动显示我想要的时间数据在我想要的地方。唉,我对宏的了解还不够,我对VBA知之甚少。如果我可以填写几行代码或其他东西,这将使我能够实现这一点,我相信我可以从那里弄明白。

2 个答案:

答案 0 :(得分:0)

一种方法是创建各种查询,例如:

QueryCU01

SELECT [Cuttime] As Pos1, [Weldtime] As Pos2, [Rivettime] As Pos3, Bend As Pos4 
FROM JobOrder

您的报告将引用Pos1,而不是CutTime。标签也可以是文本框,因此它们也会自动更新,例如:

SELECT [Cuttime] As Pos1, "Cut" As lbl1, [Weldtime] As Pos2, "Weld" As lbl2
       [Rivettime] As Pos3, "Rivet" As lbl3, Bend As Pos4 "Bend" As lbl4
FROM JobOrder

您可以通过规范化表格来进一步简化。

任务表

Job   Action Time Machine SortOrder
 1    Cut    10   AB         3
 1    Bend    4   CD         1
 1    Rivet  30   EF         6

答案 1 :(得分:0)

所以,我所做的是在查询中使用一系列Switch函数,以便将每个查询中提取的数据通过逻辑语句插入到每个字段中。对于操作名称,逻辑如下:

  

OP2:开关([ST2] =“PE01”,“插入”,[ST2] =“PE02”,“插入”,[ST2] =“BR01”,“弯曲”,[ST2] =“BR02” ,“弯曲”,[ST2] =“WE01”,“自动焊接”,[ST2] =“WE02”,“MIG焊接”,[ST2] =“WE03”,“TIG焊接”,真,“N / A “)

本质上意味着,如果ST2 = PE01,那么OP2 =插入,否则如果ST2 = BR01,则OP2 =弯曲......

然后我设置另一个开关,说如果OP2 = Bend,Time2 = BendTime ......那么等等。这样,每个字段都包含一个基于逻辑语句输入的值,并且作业的顺序由我在作业顺序表中输入工作站名称时设置的顺序确定。