以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  DeleteFor如何删除老记录,保持行数记录不超10000条  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=160848)

--  作者:宇哥
--  发布时间:2021/2/24 0:17:00
--  DeleteFor如何删除老记录,保持行数记录不超10000条
如题
[此贴子已经被作者于2021/2/24 0:18:11编辑过]

--  作者:有点蓝
--  发布时间:2021/2/24 8:35:00
--  
Dim dr As DataRow
dr = 
DataTables("订单").Find("","日期 Desc",10000)
If 
dr IsNot Nothing Then \'如果找到的话
    
DataTables("订单").DeleteFor("[日期] < #" & dr("日期") & "#")
End If

--  作者:宇哥
--  发布时间:2021/3/1 9:43:00
--  
改成这样,数据不执行删除操作,求助:

Dim Result As DialogResult
Result = MessageBox.Show("此操作将清除10天以前全部数据操作日志,确认要清除吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)
If Result = DialogResult.Yes Then
    Dim y As DialogResult
    y = MessageBox.Show("再次确认您的操作是否要执行?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)
    If y = DialogResult.Yes Then

        Dim d As Date = Date.Today.AddDays(-10)
        DataTables("数据操作日志").DeleteFor("[时间] < #" & d & "#" )
       DataTables("数据操作日志").save
        DataTables("数据操作日志").Load

    Else
        Return
    End If
Else
    Return
End If

--  作者:有点蓝
--  发布时间:2021/3/1 9:52:00
--  
代码没有问题。什么数据库?
--  作者:宇哥
--  发布时间:2021/3/1 9:57:00
--  
外部access ,窗口表是副本

图片点击可在新窗口打开查看此主题相关图片如下:7`wdmml700u%k$s)e36pare.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2021/3/1 9:59:00
--  
确认删除后数据库还有10天前的数据?

窗口表使用了fill?或者是sqltable?

--  作者:宇哥
--  发布时间:2021/3/1 10:11:00
--  
有可能是表类型问题

图片点击可在新窗口打开查看此主题相关图片如下:r3g3{dkuufrex~stu{zun5.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/3/1 10:18:00
--  
重新加载窗口表:http://www.foxtable.com/webhelp/topics/1907.htm
--  作者:宇哥
--  发布时间:2021/3/1 11:55:00
--  
还有一个问题:人员表和窗口副本表关联,打开窗口之后  当前行总自己跑一遍  为啥

图片点击可在新窗口打开查看此主题相关图片如下:简单演示56.gif
图片点击可在新窗口打开查看


副本表事件:
If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
Else
    Dim dr As DataRow = e.Table.Current.DataRow
    Dim wz As Integer = Tables("人员表").FindRow(dr)
    If wz >=0 Then
        Tables("人员表").Position = wz
    End If
    
End If


人员表事件:
If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
Else
    If Forms("人员信息").Opened Then \'如果窗口已经打开
        Dim dr As DataRow = e.Table.Current.DataRow
        Dim wz As Integer = Tables("人员信息_Table1").FindRow(dr)
        If wz >=0 Then
            Tables("人员信息_Table1").Position = wz
        End If
    End If
End If


--  作者:宇哥
--  发布时间:2021/3/1 11:57:00
--  
篮版  ,解决了
[此贴子已经被作者于2021/3/1 11:59:36编辑过]