以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 自动写入  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138411)

--  作者:leoli
--  发布时间:2019/7/30 21:11:00
--  [求助] 自动写入

你好,请问只要我在表A 列Remark 中写入内容保存后,自动将其ID,Item 和Remark的内容新增到另一个表 “ 表”中并记录时间

 

保存内容超过一个小时候后,又在这个Remark的单元格中将期内容修改保存后,又自动将其ID,Item 和Remark的内容新增到“ 表”中,记录时间。

 

这样可以实现吗 ?谢谢。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:自动写入.foxdb


--  作者:有点蓝
--  发布时间:2019/7/30 21:21:00
--  

表ABeforeSaveDataRow事件


If e.DataRow.OriginalValue("remark") <> e.DataRow("remark") Then
    Dim dr As DataRow = DataTables("表").AddNew
    dr("ID") = e.DataRow("ID")
    dr("Item") = e.DataRow("Item")
    dr("remark") = e.DataRow("remark")
    dr("sysDate") = Date.Now
    dr.Save
End If

--  作者:leoli
--  发布时间:2019/7/30 22:49:00
--  
你好,怎么改一次保存后就新增一次,可不可以短时间内新增的不要新增,在原来的记录上修改。超过一个小时的,再新增呢? 谢谢。
[此贴子已经被作者于2019/7/30 22:48:50编辑过]

--  作者:有点蓝
--  发布时间:2019/7/30 22:55:00
--  
If e.DataRow.OriginalValue("remark") <> e.DataRow("remark") Then
    Dim dr As DataRow = DataTables("表").Find("ID=\'" & e.DataRow("ID") & "\'")
    If dr Is Nothing
        dr = DataTables("表").AddNew
        dr("sysDate") = Date.Now
    Else
        Dim tp As TimeSpan = Date.Now - cdate(dr("sysDate"))
        If tp.TotalHours > 1 Then
            dr = DataTables("表").AddNew
            dr("sysDate") = Date.Now
        End If
    End If
    dr("ID") = e.DataRow("ID")
    dr("Item") = e.DataRow("Item")
    dr("remark") = e.DataRow("remark")
    dr.Save
End If

--  作者:leoli
--  发布时间:2019/7/31 22:15:00
--  

你好,第一次保存后结果对的,可是第二,三次就不对了,如图。

 

因第二次修改虽然间隔小于1小时,它比较的还是第一次的记录,所以每改一次,还是要新增的。它应该要跟上次最近的一次记录进行比较才对。


图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/8/1 10:07:00
--  
仔细学学find的用法:http://www.foxtable.com/webhelp/topics/0396.htm