我的數據庫中有一個字段用於專家在電話上花費的總時間,另一個用於總通話時間。我試圖計算平均通話時間,但Access不會以hh:mm:ss格式返回號碼,而無需進行某些編碼。儘管我在VBA中編寫東西,但我很新。我嘗試將「平均通話時間」字段的格式更改爲「長時間」,但它顯示爲一天中的某個時間,而不是平均時間,或者我看錯了?如何計算Microsoft Access中的平均通話時間
是否有其他人遇到類似的問題,如果是的話,你是如何解決它的?
任何幫助,將不勝感激
謝謝!
我的數據庫中有一個字段用於專家在電話上花費的總時間,另一個用於總通話時間。我試圖計算平均通話時間,但Access不會以hh:mm:ss格式返回號碼,而無需進行某些編碼。儘管我在VBA中編寫東西,但我很新。我嘗試將「平均通話時間」字段的格式更改爲「長時間」,但它顯示爲一天中的某個時間,而不是平均時間,或者我看錯了?如何計算Microsoft Access中的平均通話時間
是否有其他人遇到類似的問題,如果是的話,你是如何解決它的?
任何幫助,將不勝感激
謝謝!
如果長時間使用的數據類型的日期記錄,您可以使用查詢:
Select CDate(Avg([TimeSpent])) As TotalTimeSpent
From YourTable
您可能必須指定該字段的格式:h:nn
如果你的時間將超過24 ,你將不得不使用一個函數來創建一個HH:NN閱讀:
Public Function FormatHourMinute(_
ByVal datTime As Date, _
Optional ByVal strSeparator As String = ":") _
As String
' Returns count of days, hours and minutes of datTime
' converted to hours and minutes as a formatted string
' with an optional choice of time separator.
'
' Example:
' datTime: #10:03# + #20:01#
' returns: 30:04
'
' 2005-02-05. Cactus Data ApS, CPH.
Dim strHour As String
Dim strMinute As String
Dim strHourMinute As String
strHour = CStr(Fix(datTime) * 24 + Hour(datTime))
' Add leading zero to minute count when needed.
strMinute = Right("0" & CStr(Minute(datTime)), 2)
strHourMinute = strHour & strSeparator & strMinute
FormatHourMinute = strHourMinute
End Function
,然後調整查詢:
Select FormatHourMinute(CDate(Avg([TimeSpent]))) As TotalTimeSpent
From YourTable
訪問中的時間字段旨在存儲時間點 - 而不是持續時間。儘管您可能選擇了「長時間」作爲顯示格式,但訪問仍將其存儲爲特定日期。您可以在長時間格式化日期時間字段時嘗試此操作,在其中輸入一些數據,然後將格式更改爲tt.mm.jjjj hh:nn:ss
,它會在1899年12月30日 - 訪問時間的開始日期給您一些時間。
如果您創建了一個查詢,將「long time」類型的時間相加,並將tt.mm.jjjj hh:nn:ss
放入格式框中,只要總和超過24小時,它就會顯示更晚的日期。
因此,要處理持續時間,您通常會以數字字段中所需的最小精度(小時,分鐘,秒,幾個世紀)存儲所有內容,並從中計算所有內容。 在表單中輸入數據比直接輸入數據表要容易得多(也更安全),因此您可以使用自動轉換持續時間的時間字段。
「總時間」和「總呼叫」列的數據類型是什麼?您能否提供一些示例記錄和預期輸出?也很高興看到你現在正在做什麼來得到你的答案(如果它接近工作的話) – Brad
總時間是某人在一個給定的月份上花費的時間總數,每個人在這個月中的電話號碼。他們的平均通話時間均爲月度和年度 我認爲我遇到的問題的一部分是我無法輸入17:42:27作爲沒有接入思考的每月總時間我正在輸入5 :42 PM – gkneib