Foxtable(狐表)用户栏目专家坐堂 → 表事件


  共有5359人关注过本帖树形打印复制链接

主题:表事件

帅哥哟,离线,有人找我吗?
有点色
  41楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 14:44:00 [只看该作者]

改代码,之前回答过你了啊,15楼。

 

Dim d As Date = e.Form.Controls("Calendar1").value.Date

Tables("Timing").Filter ="TimingStarttime >= #" & d & "# and TimingStarttime < #" & d.AddDays(1) & "#"
Tables("Productionlog").Filter = "Startlinerecording >= '" & Format(d, "yyyy-MM-dd HH:mm") & " 0000" & "' and Startlinerecording < '" & Format(d.AddDays(0), "yyyy-MM-dd") & "00:00 0000" & "'"
Dim drs,drs2,drs3,drs4,drsMid,Timedrs,drsHSE,drsCrew,drsProduction As List(Of DataRow)
drs=DataTables("Timing").Select("TimingStarttime >= #" & d & "# and TimingStarttime < #" & d.AddDays(1) & "#" )
drs2=DataTables("Productionlog").Select("Startlinerecording >= '" & Format(d, "yyyy-MM-dd HH:mm") & " 0000" & "' and Startlinerecording < '" & Format(d.AddDays(0), "yyyy-MM-dd") & "00:00 0000" & "'")

messagebox.show(drs.count & " ," & drs2.count)


 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  42楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1008 积分:6468 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/5/19 15:53:00 [只看该作者]

谢谢老师。

 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  43楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1008 积分:6468 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/6/1 8:34:00 [只看该作者]

请问老师,我的问题在附件,请您看看。具体数据在附件。里面写了部分代码,但不能够实现下面的要求,咨询老师如何更改代码。谢谢!

我需要实现:(1)选取2014-9-14日之前(不包括2014-9-14)或2014-9-15日(不包括2014-9-15)之后的日期,能够删除全部记录。
           (2)选取2014-9-14日删除全部记录。因为9-15日也生产了seq3.
           (3)选取2014-9-15日只删除9-14日的记录,不删除9-15日的记录。

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



 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  44楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 8:44:00 [只看该作者]

你逻辑有问题,没看懂你的逻辑。

 

单纯这两个日期可以这样写,但是如果是别的日期,规则又是什么?


 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  45楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1008 积分:6468 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/6/1 8:51:00 [只看该作者]

对于别的日期,是这样的:因为会出现两天都在生产同一个seq(比如9-14日、9-15日也生产了seq3)的现象,如果一天生产一个seq,我用DataTables("ProductionListing").DeleteFor("[Date]= #" & wholedate.AddDays(-1)& "#")就行了。但问题是会出现两天都在生产同一个seq。我需要重新处理某一天的数据时,删除这一天的生产数据。你看这样解释行吗?

 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  46楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1008 积分:6468 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/6/1 9:06:00 [只看该作者]

我们的作业是24小时作业,会出现跨天的问题。我需要重新处理某一天的数据时,也删除跨天的数据。比如9-16、9-17日均生产了seq3,我重新处理9-16日数据时,必须删除9-16、9-17日生产的seq3的数据。

 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  47楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1008 积分:6468 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/6/1 9:21:00 [只看该作者]

比如9-16、9-17日均生产了seq3,我重新处理9-16日数据时,如果我不删除9-17日生产的seq3的数据,会出现重复统计9-17日生产的seq3的问题。

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  48楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 9:29:00 [只看该作者]

Dim d As Date = "2014-09-14"
Dim drs As List(Of DataRow) = DataTables("表A").Select("date = #" & d & "#")
For Each dr As DataRow In drs
    Dim fdr As DataRow = DataTables("表A").Find("date < #" & d & "# and seq = '" & dr("seq") & "'")
    If fdr Is Nothing Then
        DataTables("表A").deletefor("date >= #" & d & "# and seq = '" & dr("seq") & "'")
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
cglsg5076
  49楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1008 积分:6468 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/6/1 10:05:00 [只看该作者]

谢谢老师,代码可行。
再一个问题是:
选取2014-9-14日之前(不包括2014-9-14)或2014-9-15日(不包括2014-9-15)之后的日期,能够删除全部记录。
我这样写:运行不报错,但运行没有结果,请问如何改?谢谢。
Dim drs1 As List(Of DataRow) = DataTables("表A").Select("date < #" & wholedate & "#")
If drs1 Is Nothing Then
DataTables("表A").deletefor("")
End If
Dim drs1 As List(Of DataRow) = DataTables("表A").Select("date > #" & wholedate & "#")
If drs1 Is Nothing Then
DataTables("表A").deletefor("")
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  50楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 10:33:00 [只看该作者]

Dim d As Date = "2014-09-14"
Dim drs As List(Of DataRow) = DataTables("表A").Select("date = #" & d & "#")
If drs.count = 0 Then
    DataTables("表A").deletefor("")
Else
    For Each dr As DataRow In drs
        Dim fdr As DataRow = DataTables("表A").Find("date < #" & d & "# and seq = '" & dr("seq") & "'")
        If fdr Is Nothing Then
            DataTables("表A").deletefor("date >= #" & d & "# and seq = '" & dr("seq") & "'")
        End If
    Next
End If

 回到顶部
总数 54 上一页 1 2 3 4 5 6 下一页