有谁知道是否有方法在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