在 VBA 中计算时间差和舍入以进行访问

Posted

技术标签:

【中文标题】在 VBA 中计算时间差和舍入以进行访问【英文标题】:Calculating time difference and rounding in VBA for access 【发布时间】:2017-04-26 13:19:17 【问题描述】:

问题: 我正在设计一个工单系统,我们需要跟踪花费在一项任务上的时间。我们有一个开始时间和结束时间,它是一个日期/时间字段。我需要计算从这两个字段花费的时间,然后将其四舍五入到最接近的小时,总是四舍五入。 121分钟应该算3小时。

我的尝试: 目前我正在将开始时间和结束时间之间的时间转换为分钟,然后尝试将其四舍五入到最接近的小时。

我的分钟字段是=DateDiff("n",[starttime],[endtime])

我拥有的总时间字段是Me.TotalTime.Value = mins mod 60 + 1 除非分钟正好是 60、120、180 等...

感谢任何解决方案

【问题讨论】:

类似int(181/60) + iif(181 mod 60>0,1,0) 181 分钟或更简单的int(181/60) + cint(181 mod 60) 抱歉忽略了第二个想法,我无法编辑更新它。 【参考方案1】:

你可以直接做:

 Hours = Hour(TimeSerial(Hour([EndTime] - [StartTime]), -Int(-Minute([EndTime] - [StartTime]) / 60) * 60, 0))

【讨论】:

以上是关于在 VBA 中计算时间差和舍入以进行访问的主要内容,如果未能解决你的问题,请参考以下文章

VBA 获取计算机 *** 状态

Excel-VBA 访问 sql server 表进行选择和插入太慢

如何等待 Compact Repair - 访问 VBA

无法使用 vba 函数中的索引结果进行进一步计算

访问VBA:如何计算ComboBox的项目?

访问 Outlook VBA 对象模型时单词冻结