vba - MS 访问 VBA 更新创建重复条目
问题描述
我将此代码绑定到 MSAccess 表单中的命令按钮。目的是向现有记录插入更新并将日期添加到 TIME OUT 字段。每当我运行此代码块时,它都会更新记录,但也会在同一个表中创建一个具有相同唯一 ID 的重复条目。所以它在桌面侧视图上看起来像这样。
我试图理解为什么会发生这种情况。只是为了一些额外的信息。这是我的表结构:
Private Sub CheckOutBtn_Click()
Dim rst As Recordset
Dim employeeInt As Integer
Dim strSQL As String
employeeInt = Int(Me!EmployeeID)
With CurrentDb.OpenRecordset("TimeTable")
.Edit
![EmployeeID] = employeeInt
![TImeOut] = Now()
.Update
End With
Me.Refresh
End Sub
任何帮助,将不胜感激!
解决方案
您的代码有 3 个问题。首先,您将需要使用 TimeClockID 而不是 EmployeeID,并且您应该在表单数据源中包含 TimeClockID。
接下来在表单上包含一个链接到 TimeClockID 的不可见文本框,以便您可以使用 me 对象获取表单当前记录的 TimeClockID。
其次不要更改员工编号。我假设这是员工开始轮班时用于插入记录的表单中的剩余代码。更改员工编号可能会以某种方式创建重复记录。第三次使用 TimeClockID 更新正确的记录。
Private Sub CheckOutBtn_Click()
Dim rst As Recordset
Set rst = Me.Recordset.Clone
With rst
.FindFirst "TimeClockID = " & Me.txtTimeClockID 'subroutine to move rst to current form record.
.Edit
![TimeOut] = Now()
.Update
End With
Me.Refresh
End Sub
现在添加 Timeout 不会创建重复记录:
推荐阅读
- javascript - Ajax 不向烧瓶发送参数
- makefile - 使用 Makefile 构建目录 - 每次都编译
- python - 总结为什么keras自定义层会产生无意义的输出形状
- python - 如何使用 Spyder 调试 input() 函数调用?
- php - 当我使用 varchar 从数据库中获取数据并将其重新分配给数据库时出现问题
- ansible - 使用 ansible 将对象值与字典变量列表中的相同键合并
- php - Laravel Spatie 翻译包不适用于原始查询和连接操作
- java - 部分安卓手机无法在设置中打开“关于设备”页面?
- javascript - 如何从 Vue 中的组件更改视图文件上的 :class 名称?
- ubuntu-18.04 - 带有 Ubuntu 18.04 的 MSI GS75 -- 一些 fn 键不起作用(仅音量/亮度起作用)