Foxtable(狐表)用户栏目专家坐堂 → [求助]关联表的子表,同步表时特别慢


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

主题:[求助]关联表的子表,同步表时特别慢

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/13 15:57:00 [只看该作者]


Dim Filter As String = "[登记日期] = #" & e.DataRow("登记日期") & "# and [客户] = '" & e.DataRow("客户") & "' and [花号] = '" & e.DataRow("花号") & "' and [色位] = '" & e.DataRow("色位") & "' and [面料] = '" & e.DataRow("面料") & "' and [下单米数] = " & e.DataRow("米数") & " and [打印机台] = '" & e.DataRow("打印机台") & "'"

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


加好友 发短信
等级:幼狐 帖子:95 积分:834 威望:0 精华:0 注册:2020/5/28 10:53:00
  发帖心情 Post By:2021/5/13 16:04:00 [只看该作者]

If e.DataCol.Name = "登记日期" OrElse e.DataCol.Name = "客户" OrElse e.DataCol.Name = "花号" OrElse e.DataCol.Name = "色位" OrElse e.DataCol.Name = "面料" OrElse e.DataCol.Name = "米数" OrElse e.DataCol.Name = "打印机台" Then
    Dim Filter As String = "[登记日期] = '" & e.DataRow("登记日期") & "' and [客户] = '" & e.DataRow("客户") & "' and [花号] = '" & e.DataRow("花号") & "' and [色位] = '" & e.DataRow("色位") & "' and [面料] = '" & e.DataRow("面料") & "' and [下单米数] = '" & e.DataRow("米数") & "' and [打印机台] = '" & e.DataRow("打印机台") & "'"
    e.DataRow("打印总数") = DataTables("打印明细").Compute("Sum(打印米数)", Filter)
    e.DataRow("墨水总量") = DataTables("打印明细").Compute("Sum(墨水用量)", Filter)
End If

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/13 16:12:00 [只看该作者]

看11楼,测试有什么问题?

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


加好友 发短信
等级:幼狐 帖子:95 积分:834 威望:0 精华:0 注册:2020/5/28 10:53:00
  发帖心情 Post By:2021/5/13 16:16:00 [只看该作者]

If e.DataCol.Name = "登记日期" OrElse e.DataCol.Name = "客户" OrElse e.DataCol.Name = "花号" OrElse e.DataCol.Name = "色位" OrElse e.DataCol.Name = "面料" OrElse e.DataCol.Name = "米数" OrElse e.DataCol.Name = "打印机台" Then
    Dim Filter As String = "[登记日期] = #" & e.DataRow("登记日期") & "# and [客户] = '" & e.DataRow("客户") & "' and [花号] = '" & e.DataRow("花号") & "' and [色位] = '" & e.DataRow("色位") & "' and [面料] = '" & e.DataRow("面料") & "' and [下单米数] = '" & e.DataRow("米数") & "' and [打印机台] = '" & e.DataRow("打印机台") & "'"
    e.DataRow("打印总数") = DataTables("打印明细").Compute("Sum(打印米数)", Filter)
    e.DataRow("墨水总量") = DataTables("打印明细").Compute("Sum(墨水用量)", Filter)
End If

这个测试了没有反应,也不报错,列 打印总数和 墨水总量 没有统计出来

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/13 17:06:00 [只看该作者]

选择"登记日期"列,重置一下列

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


加好友 发短信
等级:幼狐 帖子:95 积分:834 威望:0 精华:0 注册:2020/5/28 10:53:00
  发帖心情 Post By:2021/5/13 17:16:00 [只看该作者]

不行,没有反应

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/13 17:36:00 [只看该作者]

没有符合条件的数据。也就是这2个表上面这些列不存在数据完全相同的行。

去掉[登记日期]条件就可以了,也就是[登记日期]数据对应不上。

建议建一个专门的编号列对应,不要使用这么多列对应,特别是日期列和数值列。日期列有时分秒的,赋值的时候使用的是date.now的 ,基本都不可能对应上

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


加好友 发短信
等级:幼狐 帖子:95 积分:834 威望:0 精华:0 注册:2020/5/28 10:53:00
  发帖心情 Post By:2021/5/13 17:46:00 [只看该作者]

可是这两表是关联表啊,不应该是一样的吗,关联的内容也是那些列,而且打印明细上增加的行都是在  华晨生产记录.打印明细 这个子表上增加的

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/13 20:24:00 [只看该作者]

两表是关联表,不代表数据就一定是一样的。如果要一样应该在关联表里新增,而不是在子表上新增。点击父表,在下面关联表里根本就看不到有数据这就是证明


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



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


加好友 发短信
等级:幼狐 帖子:95 积分:834 威望:0 精华:0 注册:2020/5/28 10:53:00
  发帖心情 Post By:2021/5/14 10:27:00 [只看该作者]

双击
If e.Col.Name <> "机印完成"
    If user.Isrole("打印员") And user.Isrole("管理员") = False
        Tables("华晨生产计划.打印明细").AddNew()
        Forms("增加打印明细").open()
    End If
End If

我是这样增加的,就是在关联表这里,应该是一样的吧

 回到顶部
总数 21 上一页 1 2 3 下一页