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


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

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/20 18:50:00 [显示全部帖子]

currentChanged事件写同步代码即可

 

 

示例一
假定我正在订单表操作,我们希望在订单表中选定一行时,客户表的光标能够自动定位到该客户,这样我一旦从订单表回到客户表,即可看到刚刚所选订单的客户资料。
为此我们在CurrentChanged事件中设置如下代码: 

If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End If
Dim wz As Integer
Dim dr As DataRow
dr = DataTables("客户").Find("[客户ID] = '" & e.Table.Current("客户ID") & "'")
If dr IsNot Nothing Then
    wz = Tables("客户").FindRow(dr)
    If wz >= 0 Then
        Tables("客户").Position = wz
    End If
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 8:58:00 [显示全部帖子]

试试改成这样,查询条件,不能用_Identify列的,有可能_Identify的值是不匹配的(比如你删除过了行、上下移动过了行,都有可能导致其值不相同)

 

If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End If
Dim zjzh As Integer
zjzh = Tables("原始数据中间转换").FindRow("[某列] = '" & e.Table.Current("某列") & "'")
If zjzh >= 0 Then
    Tables("原始数据中间转换").Position = zjzh
End If


 

如果每个表的位置都是一样的,可以直接这样写代码,如

 

If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End If
Tables("原始数据中间转换").Position = e.Table.Position

[此贴子已经被作者于2018/3/21 8:58:24编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 10:47:00 [显示全部帖子]

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

 

1、两个表之间,根据什么逻辑同步数据?必须把唯一的条件弄出来才能写代码

 

2、如果仅仅是根据行号同步,你可以参考后一种的方式处理,如

 

If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End If
Tables("原始数据中间转换").Position = e.Table.Position


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 12:15:00 [显示全部帖子]

同步的规则是什么?根据什么规则同步?没有规则就无法编写代码。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 15:08:00 [显示全部帖子]

代码应该改成,因为_Identify里是不能直接赋值的。

 

        Dim dr As DataRow = DataTables("原始数据中间转换").Find("某一列 = '" & e.DataRow("_Identify") & "'")

        If dr Is Nothing Then
            dr = DataTables("原始数据中间转换").addnew
            dr("某一列") = e.DataRow("_Identify")
        End If

 回到顶部