有誰知道是否有方法在MS Access中創建秒錶?我正在尋找一種讓秒錶「開始」的方式,即有人點擊某個特定表單的「新」記錄,並在表格中保存輸入信息時,秒錶「結束」了嗎?理想情況下,對於表中的每條記錄,我希望有一個額外的列顯示創建表單所用的時間。在MS Access中創建秒錶
任何建議/想法?
有誰知道是否有方法在MS Access中創建秒錶?我正在尋找一種讓秒錶「開始」的方式,即有人點擊某個特定表單的「新」記錄,並在表格中保存輸入信息時,秒錶「結束」了嗎?理想情況下,對於表中的每條記錄,我希望有一個額外的列顯示創建表單所用的時間。在MS Access中創建秒錶
任何建議/想法?
嘗試this您可以設置的onClick爲「新」,你可以把一個簡單的if語句,以使其停止在攢動
當您單擊新按鈕,窗體的On Current
事件會開火。您可以通過檢查表單的NewRecord
屬性來區分當前記錄是新記錄還是現有記錄。
我在表中添加了一個名爲seconds_for_insert
的Long Integer字段。然後我創建了一個表單,其記錄源是基於該表的查詢。該表格包含一個文本框名稱txtSeconds_for_insert
,它綁定到記錄源seconds_for_insert
字段。這裏是我的窗體代碼:
Option Compare Database
Option Explicit
Dim blnNewRecord As Boolean
Dim dteStartTime As Date
Private Sub Form_BeforeInsert(Cancel As Integer)
Me.txtSeconds_for_insert = DateDiff("s", dteStartTime, Now())
End Sub
Private Sub Form_Current()
blnNewRecord = Me.NewRecord
If blnNewRecord Then
dteStartTime = Now()
End If
End Sub
如果源表包含一個自動編號字段,Access將只要你輸入任何東西到綁定控件的一個保存新的記錄。您添加到該「新」記錄的任何剩餘數據將與更新而不是插入操作一起保存。所以在這種情況下,請使用Form_BeforeUpdate
而不是Form_BeforeInsert
。
Private Sub Form_BeforeUpdate(Cancel As Integer)
If blnNewRecord Then
Me.txtSeconds_for_insert = DateDiff("s", dteStartTime, Now())
End If
End Sub
該txtSeconds_for_insert
文本框不必啓用,甚至可以看到這個工作。您可能更願意設置Visible = No以避免分散用戶注意力,或者如果您不希望他們知道您正在跟蹤該信息。
我很好奇跟蹤用戶插入每條新記錄所花費的時間的目的是什麼? – HansUp 2012-04-09 18:30:19
@HansUp - 延遲? – Gutzofter 2012-08-04 16:44:19
你想要秒,毫秒,微秒,皮秒的定時器分辨率? – Gutzofter 2012-08-04 16:45:33