在报告中逐行检查
Posted
技术标签:
【中文标题】在报告中逐行检查【英文标题】:Checking Row by Row in a report 【发布时间】:2013-08-27 08:39:58 【问题描述】:关于这个问题,
Changing Row Colour according to condition
我熟悉了条件格式。但是我仍然面临这个问题。
我正在使用此代码将时间转换为以分钟为单位的时间。
Dim TestString As String
TestString = Me.Duration
Dim TestArray() As String
TestArray = Split(TestString, ":")
Dim Hours As String
Dim Minutes As String
Dim Seconds As String
Dim HoursMinutes As Integer
Dim MinutesMinutes As Integer
Dim SecondsMinutes As Integer
Hours = TestArray(0)
Minutes = TestArray(1)
Seconds = TestArray(2)
HoursMinutes = CInt(TestArray(0)) * 60
MinutesMinutes = CInt(TestArray(1))
SecondsMinutes = CInt(TestArray(2)) / 60
Dim TimeInMinutes As Integer
TimeInMinutes = HoursMinutes + MinutesMinutes + SecondsMinutes
Me.Duration = TimeInMinutes
但是,由于某种原因,这不起作用。
您有什么想法我该如何为单独的行执行此操作?
提前致谢
添加:
我尝试为 Minutes 创建一个字段,但问题是它们会得到相同的数字。
【问题讨论】:
***.com/questions/18438469/…(参考这个问题) 我尝试为分钟创建一个字段,但问题是它们会得到相同的数字。 【参考方案1】:以下代码有一个名为 dateTime
的字符串变量,它以这种格式存储当前日期和时间:27/08/2013 10:55:52
dateTime
字符串被拆分为 Variant arr
数组
Split(dateTime, Chr(32))(1)
返回时间10:55:52
dateTime
变量的一部分
然后Split(Split(dateTime, Chr(32))(1), ":")
使用:
(冒号)作为分隔符将时间分成3个数字
所以你最终会得到arr
持有# of hrs、# of minutes、# of seconds。
CLng((arr(0) * 60) + arr(1) + (arr(2) / 60))
返回计算时间值的整数/长整数表示
将下面的 sub 粘贴到新模块中并运行它
Sub Convert()
Dim dateTime As String
dateTime = now
Dim arr
arr = Split(Split(dateTime, Chr(32))(1), ":")
MsgBox "The time " & Split(dateTime, Chr(32))(1) & vbCrLf & _
" as Integer is equal to " & CLng((arr(0) * 60) + arr(1) + (arr(2) / 60))
End Sub
【讨论】:
我做到了!谢谢,但是我尝试将类似的更改代码插入到 Detail_Paint 函数中。我的问题是条件格式出现的,然后在我向下滚动报告时刷新..以上是关于在报告中逐行检查的主要内容,如果未能解决你的问题,请参考以下文章