Foxtable(狐表)用户栏目专家坐堂 → 查询表如何实现以下功能


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

主题:查询表如何实现以下功能

美女呀,离线,留言给我吧!
mxy8898
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:448 威望:0 精华:0 注册:2018/2/3 11:13:00
查询表如何实现以下功能  发帖心情 Post By:2018/3/20 17:30:00 [显示全部帖子]

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

项目介绍:(已完成)
1、表A 第一列(第一行、第二行……)数据同步到所有表第一列(第一行、第二行……不错乱)
2、表A每一行输入的数据是原始手工输入数据
3、后面所有表如表B、表D等,是通过表A手工输入的数据,公式计算得到的数据


目的:查询表
1、我在表A的第一列查找 广东内容(广东有可能有重复),查找出很多行关于广东的数据,
2、当我选中表搜索出的数据某一行后,可以自动关联显示其他表中同步此行或通过此行数据计算得出的结果行。

比如:
1、我搜索表A中,第一列的广东
2、选中表A中第二行时候,同步显示表B、表C、表D……很多表的第二行(第二行不是查询页面第二行,是通过表A第二行同步到其他表的第二行,第二行是唯一,_IDentify里的数值一样,选中查询表第二行,他的_IDentify是10,那么表B、表C、表D……里显示此行的_IDentify也是10)

 回到顶部
美女呀,离线,留言给我吧!
mxy8898
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:448 威望:0 精华:0 注册:2018/2/3 11:13:00
  发帖心情 Post By:2018/3/20 23:03:00 [显示全部帖子]

OK了,呵呵,太神气了

 回到顶部
美女呀,离线,留言给我吧!
mxy8898
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:448 威望:0 精华:0 注册:2018/2/3 11:13:00
  发帖心情 Post By:2018/3/21 8:49:00 [显示全部帖子]

这个代码,在家电脑上执行挺好,但是把整个文件夹和实例复制到公司电脑上,代码不执行,检查代码一点问题没有,是咋回事。

代码如下:

If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End If
Dim zjzh As Integer
Dim zjzh1 As DataRow
zjzh1 = DataTables("原始数据中间转换").Find("[_IDENTIFY] = '" & e.Table.Current("_IDENTIFY") & "'")
If zjzh1 IsNot Nothing Then
    zjzh = Tables("原始数据中间转换").FindRow(zjzh1)
    If zjzh >= 0 Then
        Tables("原始数据中间转换").Position = zjzh
    End If
End If 'Y以上选择本表,定位到钾离子表


If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End If
Dim jlz As Integer
Dim jlz1 As DataRow
jlz1 = DataTables("钾离子计算公式").Find("[_IDENTIFY] = '" & e.Table.Current("_IDENTIFY") & "'")
If jlz1 IsNot Nothing Then
    jlz = Tables("钾离子计算公式").FindRow(jlz1)
    If jlz >= 0 Then
        Tables("钾离子计算公式").Position = jlz
    End If
End If

If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End If
Dim zyd As Integer
Dim zyd1 As DataRow
zyd1 = DataTables("总硬度计算公式").Find("[_IDENTIFY] = '" & e.Table.Current("_IDENTIFY") & "'")
If zyd1 IsNot Nothing Then
    zyd = Tables("总硬度计算公式").FindRow(zyd1)
    If zyd >= 0 Then
        Tables("总硬度计算公式").Position = zyd
    End If
End If
[此贴子已经被作者于2018/3/21 8:50:22编辑过]

 回到顶部
美女呀,离线,留言给我吧!
mxy8898
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:448 威望:0 精华:0 注册:2018/2/3 11:13:00
  发帖心情 Post By:2018/3/21 9:15:00 [显示全部帖子]

如果用某列,这一列,多数是重复值,有影响吗
而且我看数据库
所有表都有_SortKey,而其中一个表没有这个列,正常吗
[此贴子已经被作者于2018/3/21 9:32:32编辑过]

 回到顶部
美女呀,离线,留言给我吧!
mxy8898
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:448 威望:0 精华:0 注册:2018/2/3 11:13:00
  发帖心情 Post By:2018/3/21 11:03:00 [显示全部帖子]

根据关键列同步,  _IDENTIFY
新增多列,又出这种情况,每隔10行是新增的,不是按新增顺序排序

图片点击可在新窗口打开查看此主题相关图片如下:新增行奇怪,每隔10行,和其他表同步是正确的.jpg
图片点击可在新窗口打开查看


 回到顶部
美女呀,离线,留言给我吧!
mxy8898
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:448 威望:0 精华:0 注册:2018/2/3 11:13:00
  发帖心情 Post By:2018/3/21 13:00:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "","第02","第03","第04","第05","第06","第07","第08","第09","第10","第11","第12","第13","第14","第15","第16","第17","第18","第19","第20","第21","第22","第23","第24","第25","第26","第27","第28","第29","第30","第31"
        Dim dr As DataRow = DataTables("原始数据中间转换").Find("_Identify = '" & e.DataRow("_Identify") & "'")
        If dr Is Nothing Then
            dr = DataTables("原始数据中间转换").addnew
            dr("_Identify") = e.DataRow("_Identify")
        End If
        dr("原_第01") = e.DataRow("第02")
        dr("原_第02") = e.DataRow("第03")
        dr("原_第03") = e.DataRow("第04")
        dr("原_第04") = e.DataRow("第05")
        dr("原_第05") = e.DataRow("第06")
        dr("原_第06") = e.DataRow("第07")
        dr("原_第07") = e.DataRow("第10")
        dr("原_第08") = e.DataRow("第12")
        dr("原_第09") = e.DataRow("第14")
        dr("原_第10") = e.DataRow("第19")
        dr("原_第11") = e.DataRow("第20")
        dr("原_第12") = e.DataRow("第22")
        dr("原_第13") = e.DataRow("第15")
        dr("原_第14") = e.DataRow("第24")
        dr("原_第15") = e.DataRow("第08")
        dr("原_第16") = e.DataRow("第09")
        dr("原_第17") = e.DataRow("第11")
        dr("原_第18") = e.DataRow("第13")
        dr("原_第19") = e.DataRow("第21")
        dr("原_第20") = e.DataRow("第26")
        dr("原_第21") = e.DataRow("第27")
        dr("原_第22") = e.DataRow("第25")
        dr("原_第23") = e.DataRow("第16")
        dr("原_第24") = e.DataRow("第17")
        dr("原_第25") = e.DataRow("第18")
        dr("原_第26") = e.DataRow("第23")
        dr("原_第27") = e.DataRow("第28")
        dr("原_第28") = e.DataRow("第29")
        dr("原_第29") = e.DataRow("第30")
        dr("原_第30") = e.DataRow("第31")
        dr("原_第31") = e.DataRow("第32")
End Select

这个是设置的同步规则,比如将表A,1、2、3、4、5、6、7等列按行顺序同步到其他表B、C、D等

在表A是第一行,在表B也是第一行,不能错乱
[此贴子已经被作者于2018/3/21 13:03:26编辑过]

 回到顶部
美女呀,离线,留言给我吧!
mxy8898
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:448 威望:0 精华:0 注册:2018/2/3 11:13:00
  发帖心情 Post By:2018/3/21 17:26:00 [显示全部帖子]

明白了,难怪都错乱了,哈哈

 回到顶部