【问题标题】:Access Report - Totalling a variable访问报告 - 汇总变量
【发布时间】:2015-07-29 20:35:34
【问题描述】:

我有一份报告可以让我在一个工资期内一直休假。我有一个查找表,我在其中选择支付期的开始日期和结束日期。它按员工姓名提取在该支付期间休假的所有记录,然后计算该期间的总休假小时数。例如,员工从 2015 年 9 月 8 日到 2015 年 10 月 2 日休假,总共休假 152 小时。在 2015 年 9 月 27 日至 2015 年 10 月 10 日的发薪期间,他们有 40 小时的休息时间。我通过在我的报告上创建多个隐藏的文本框然后将最后一个计算显示为休息小时数来计算这一点。工作精美!这是我创建的文本框:

'get hours off if begin time and end time off are entered.
vHoursOff = =IIf([BeginTime]="",0,[hoursoff])

'get days off in time period
vDaysOff = IIf([vbd1] = [ved1], 1, Workdays([vbd1], [ved1]))
vDaysOff2 = IIf(IsNull([BeginTimeOff]), [vDaysOff], 0)

'add hours off and days off to get total hours off
vtothoursoff = ([vDaysOff2] * 8) ' + [vHoursOff]
TimeOffThisPeriod = =Format(IIf([Hours]>0,[Hours],"-" & [vtothoursoff]),"Standard")

我的问题 - 我想按休假类型(病假、假期、个人、补偿)汇总该支付期的休假小时数。我试过了:

=Sum(IIf([tblCodesWork]![Description]="Vacation Time",[TimeOffThisPeriod],0))

它会弹出一个框让我输入 TimeOffThisPeriod。它不是从我对每条记录所做的计算中得出的。

解释我想要什么:员工在 2015 年 9 月 27 日至 2015 年 10 月 10 日的工资期有以下内容:

  1. 假期 2015 年 9 月 8 日至 2015 年 10 月 2 日 - 在此支付期间,2015 年 9 月 27 日至 2015 年 10 月 2 日 - 或 40 小时假期
  2. 2015 年 10 月 10 日假期 - 2015 年 10 月 10 日这段时间或 8 小时假期

在“员工”页脚中,我希望它显示此工资期总共有 48 小时的假期。

请帮忙!提前致谢!

【问题讨论】:

  • 您可能必须将分组范围添加到您的报告中,并按休假类型进行分组。
  • 试过了,没用。这是在报告中定义的总计计算字段。

标签: ms-access report calculated-field


【解决方案1】:

您正在对[TimeOffThisPeriod] 求和,但此字段已格式化。格式化总是意味着以某种方式将值转换为字符串。此字段是否始终包含可以转换回数字的值?

试试这个:

=Sum(IIf([tblCodesWork]![Description]="Vacation Time",
         IIf(IsNumeric([TimeOffThisPeriod]),CDbl([TimeOffThisPeriod]),0), 0))

如果它仍然不起作用,您可能必须创建一个安全的CDbl 函数,如果字符串不是数字,它不会引发错误,因为Iff 总是评估这两种情况。 IE。 CDbl([TimeOffThisPeriod]) 将被评估,即使 IsNumeric([TimeOffThisPeriod])False

Public Function SafeCDbl(ByVal x As Variant) As Double
    If IsNumeric(x) Then
        SafeCDbl = CDbl(x)
    Else
        SafeCDbl = 0
    End If
End Function

然后将求和表达式更改为:

=Sum(IIf([tblCodesWork]![Description]="Vacation Time", SafeCDbl([TimeOffThisPeriod]), 0))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多