有谁知道是否有办法在 MS Access 中创建秒表?我正在寻找一种方法来让秒表在某人单击特定表单的“新”记录时“开始”,并在该人保存在表单中输入的信息时让秒表“结束”?理想情况下,对于表中的每条记录,我希望有一个额外的列显示创建表单所花费的时间。
有什么建议/想法吗?
当您单击新按钮时,On Current
将触发表单的事件。NewRecord
您可以通过检查表单的属性来区分当前记录是新记录还是现有记录。
我在表中添加了一个名为 Long Integer 的字段seconds_for_insert
。然后我创建了一个表单,其记录源是基于该表的查询。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 以避免分散用户的注意力,或者如果您不想让他们知道您正在跟踪该信息。
试试这个您可以将 onClick 设置为“new”,您可以放入一个简单的 if 语句以允许它在保存操作时停止