在MS Access中创建秒表

时间:2012-04-09 14:52:34

标签: ms-access time stopwatch

有没有人知道是否有办法在MS Access中创建秒表?我正在寻找一种让秒表“开始”的方法,即有人点击特定表格的“新”记录,并在人保存表格中输入的信息时让秒表“结束”?理想情况下,对于表中的每条记录,我希望有一个额外的列显示创建表单所需的时间。

有任何建议/想法吗?

2 个答案:

答案 0 :(得分:2)

尝试this您可以将onClick设置为“new”,然后您可以输入一个简单的if语句以允许它在保存操作上停止

答案 1 :(得分:2)

当您点击 new 按钮时,表单的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设置为避免分散用户注意力,或者如果您不希望他们知道您正在跟踪该信息。