新增行的代码: Tables("物流计划.运输单副表").Focus
If Tables("物流计划.运输单副表").AllowAddNew = True Then
Syscmd.Row.AddNew()
Tables("物流计划.运输单副表").Save '每次增加行后,自动保存表,使得自动增量列获得真实的值
Else
MessageBox.Show("您没有该权限,请联系系统管理员!", "提示")
End If
操作日志代码:全局表事件 DataColChanged
Try
If e.DataTable.Name <> "操作日志" Then '”数据操作日志“是表名
If e.DataCol.Expression = "" Then
If e.NewValue <> e.OldValue Then
Dim r As Row = Tables("操作日志").AddNew()
r("操作") = "修改"
r("工作表") = e.DataTable.Name
r("列名称") = e.DataCol.Name
r("行键值") = e.DataRow("_Identify")
r("修改人") = Vars("用户部门") & "." & Vars("用户姓名")
r("修改时间") = Date.Now
r("修改记录") = "[" & e.OldValue & "]→[" & e.NewValue & "]"
End If
End If
End If
Catch ex As Exception
StatusBar.Message1 = "Unknown Error"
End Try
[此贴子已经被作者于2024/1/12 16:37:48编辑过]
新增行的代码改为: Tables("物流计划.运输单副表").Focus If Tables("物流计划.运输单副表").AllowAddNew = True Then SystemReady = False dim r as row = Tables("物流计划.运输单副表").addnew r.Save '每次增加行后,自动保存表,使得自动增量列获得真实的值 SystemReady = true Else MessageBox.Show("您没有该权限,请联系系统管理员!", "提示") End If
原因是使用关联表新增,新增后会给关联列赋值,就会马上触发datacolchanged事件,而这时还没有保存。所以_Identify还不是真实的值。如果在子表新增就不会有这种问题了 |
[此贴子已经被作者于2024/1/12 17:24:48编辑过]