2013-08-27 2 views
-1

Со ссылкой на этот вопрос,Проверка построчно в отчете

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 

Однако по какой-то причине это не работает.

Есть ли у вас идеи, как я могу это сделать для отдельных строк?

Заранее спасибо

ADD:

Я попытался создать поле для протокола, проблема заключается в том, что они получат все тот же номер.

+0

http://stackoverflow.com/questions/18438469/ change-row-color-согласно условию (со ссылкой на этот вопрос) – Cuta

+0

что не работает? –

+0

Я попытался создать поле для минут, проблема в том, что они получат одинаковый номер. – Cuta

ответ

1

ниже код имеет переменную типа String с именем 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 холдинговая # ГРС, # минут, # секунд.

CLng((arr(0) * 60) + arr(1) + (arr(2)/60)) возвращает Integer/Long представление вычисленного значения времени

палочки ниже к югу в свежем модуле и запустить его

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 
+0

Я сделал это! Спасибо, хотя я пробовал вставить аналогичный измененный код в функцию Detail_Paint. Мой problm возникает как условное форматирование, затем обновляется, когда я прокручиваю отчет. – Cuta

Смежные вопросы