【发布时间】:2017-05-08 16:12:30
【问题描述】:
我想知道是否找到了以下链接中的票证解决方案 Pivot on multiple fields and export from Access.
我正在尝试从以下格式的访问表中获取结果:V1(值 1)是一个数字,V2(值 2)是时间戳( hh:mm:ss)。
基本上该报告会提取当月的数据,因此最终该月的每一天都会在顶部有一天,并且每一天都有相应的数字和时间值。
April 1 April 2 April 3
Manager V1 V2 V1 V2 V1 V2
John Doe 4 5:43:12 1 0:56:32 2 3:15:12
这是一个经过的时间。我一直在看艾伦布朗的帖子,我认为我的大部分方式都是这样。我创建了两个表:1)V1,这是一个拨号数; 2) V2 是 总通话时间。然后我使用了 Allen Browne 的方法,但我无法将时间格式设为hh:mm:ss。在基表中就是这样,但无论我尝试什么,它似乎总是只显示 1 位数字。
TRANSFORM Sum(IIf([FldName]="DIALS",Val([DIALS].[DIALS]),
Val(Format([TALKTIME].[TT],"hh:nn:ss")))) AS TheValue
SELECT TALKTIME.Manager, DIALS.TW_Program_Code,
[DIALS]![VSE_FirstName] & " " & [DIALS]![VSE_Surname_Name] AS REP
FROM tblXtabColumns, TALKTIME
INNER JOIN DIALS
ON (TALKTIME.TW_Program_Code = DIALS.TW_Program_Code)
AND (TALKTIME.VSE_FirstName = DIALS.VSE_FirstName)
AND (TALKTIME.VSE_Surname_Name = DIALS.VSE_Surname_Name)
AND (TALKTIME.Period = DIALS.Period) AND (TALKTIME.[Manager] = DIALS.[Manager])
WHERE (((Month([TALKTIME].[Period])) = Month(Now())-1))
GROUP BY TALKTIME.Manager, DIALS.TW_Program_Code,
[DIALS]![VSE_FirstName] & " " & [DIALS]![VSE_Surname_Name]
PIVOT [DIALS].[Period] & " " & [FldName];
【问题讨论】:
-
你为什么在经过的时间上使用 Val() 函数? Val() 函数的目的是返回一个数字(整数或短整数,没有标点符号和字母)。
-
我刚刚在谷歌上搜索并尝试了一些东西。老实说,我迷失了。如果我什么都不放,我会收到数据类型不匹配错误
-
无法对文本值求和。如果经过的时间保存为秒,那么您应该将秒数相加而不格式化为 h:n:s。在所有算术计算完成后进行格式化。不要在那个 Iif() 中格式化。
-
确实,进行格式化的最佳位置是在表单或报告的文本框中。但是,基于 CROSSTAB 构建稳定的报表并非易事。
-
是否可以在使用 vba from access 创建每个输出 excel 文件的经过时间列后对其进行格式化?类似的东西 - 在文件夹 Temp 中 - 格式化任何工作簿中的任何列,其中列标题中包含 TT 可能达到这一点:)