如何停止访问2016以停止擦除以前保存的记录中的数据?
非常感谢任何改进/建议
(这是我用有限的知识所能做的最好的事情(
有以下字段:Text7、ID、UPK、CheckTime。要保存回表的数据只是每个扫描项目的检查时间字段。
表:
-ID自动编号|-UPK编号|-CheckTime日期/时间|-Text7(是唯一未绑定的控件(
我需要能够做到这一点:
- 扫描Text7上的值
- 更新后,在表中搜索该值(已存在(,请参阅下面的Text7_AfterUpdate事件
- Text7_AfterUpdate事件将数据填充到表单中
- 自动计算Now((并将其添加到CheckTime字段(该字段在表中为空(
- 保存记录
- 清除所有txtboxes
- 将焦点放回文本7
- 移动到最后一个空记录并准备好接收下一次扫描
**编辑感谢@Jiggles32**
注意:取消了对我的知识水平来说过于繁琐的VBA代码,尝试了@Minty的建议,并进行了查询
我想我现在看得更清楚了。看起来您希望保存在新记录上,而不是已经存在的记录上。
这就是导致该问题的原因:
rs.FindFirst "[UPK]=" & Text7
If rs.NoMatch Then
MsgBox "Sorry, no such record '" & Text7 & "' was found.", _
vbOKOnly + vbInformation
Else
Me.Recordset.Bookmark = rs.Bookmark
End If
rs.Close
基本上,这部分代码是查找包含Text7
中的UPK
值的记录的第一个实例,并将该记录设置为当前记录集。将表单上的信息添加书签。因此,如果表中已经有一个值具有相同的UPK
,它只会覆盖该值。
我确信你可以用这个来实现你想要的结果:
Dim ctrl As Control
...
'Update CheckTime to current time (for current UPK), save, and close
rs.AddNew
rs!UPK = Me.Text7
rs!CheckTime = Now()
rs.Update
rs.Close
Set rs = Nothing
'Clear all text boxes
For Each ctrl In Me.Controls
If (ctrl.ControlType = acTextBox) Then
ctrl.Value = Null
End If
Next ctrl
'Reset focus on Text7
Me.Text7.SetFocus
您仍然需要在...
部分中设置记录集等。