以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]表事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85367)

--  作者:kaiyu
--  发布时间:2016/5/24 11:01:00
--  [求助]表事件
在表中有一个表事件

AfterEdit

结束编辑单元格后执行,通常用于执行一些特定的操作和计算。

我想用一列来记录某人修改了哪列数据,正常修改都是可以记录.

但是如果有员工操作时,按住键盘上的CTRL + D,并按住鼠标左键向下填充数据,那这列记录的数据就会生成很多重复值.

这个算不算一个错误,如何规避它.


--  作者:kaiyu
--  发布时间:2016/5/24 11:02:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目17.foxdb


--  作者:大红袍
--  发布时间:2016/5/24 11:06:00
--  

 这个你操作的失误有什么好说的?Ctrl+D就是会填充数据的,你按住,自然会不断填充。

 

 要不你就把代码写到DataColChanged事件去。


--  作者:大红袍
--  发布时间:2016/5/24 11:09:00
--  

比如代码

 

Select Case e.DataCol.name
    Case "第一列","第二列"
        If e.DataRow.IsNull("Log") Then
            Dim cjbs As String = e.NewValue
            e.DataRow("Log") ="出勤标识;" & cjbs &  " _ " & Vars("sqldt")
        Else
            Dim s As String = e.DataRow("LOG")
            Dim cjbs As String = e.NewValue
            e.DataRow("Log") = s & vbcrlf & "出勤标识:" & cjbs &  " _ " & Vars("sqldt")
        End If
End Select