Foxtable(狐表)用户栏目专家坐堂 → [求助]求一行代码


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

主题:[求助]求一行代码

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


加好友 发短信
等级:小狐 帖子:319 积分:3465 威望:0 精华:0 注册:2012/4/24 14:47:00
[求助]求一行代码  发帖心情 Post By:2012/11/19 10:42:00 [只看该作者]

表中有两列 A列和B列,如何让A列中的数据不等于A,B,C,D,E这几个数据的时候,B列中对应行中等于 中转 。

 

 请前辈们指点…   谢谢


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/19 10:48:00 [只看该作者]

 Dim data() As String = {"A", "B", "C", "D", "E"}
 For each r As Row In Tables("表").Rows
     If Array.IndexOf(data, r("A")) = -1 Then
         r("B") = "中转"
     End If
 Next

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


加好友 发短信
等级:小狐 帖子:319 积分:3465 威望:0 精华:0 注册:2012/4/24 14:47:00
  发帖心情 Post By:2012/11/19 13:19:00 [只看该作者]

谢谢… 可是有点问题,A列等于空值的时候,B列也不等于中转,还有上面的代码使用的时候,在B列等于中转的时候,A列中对应行中输入A,B,C,D,E这几个数据的时候,B列中的数据没有同步清楚。。求帮助……

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/19 13:55:00 [只看该作者]

 楼主,这个代码是一次性的。你如果想修改以后同步,就编写表属性->事件->datacolchanged

Select Case e.DataCol.Name
    Case "A"
        Dim data() As String = {"A", "B", "C", "D", "E"}
        If e.DataRow.IsNull("A")=False AndAlso Array.IndexOf(data, e.DataRow("A")) = -1 Then
            e.DataRow("B") = "中转"
        End If
End Select


[此贴子已经被作者于2012-11-19 14:05:30编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/11/19 14:00:00 [只看该作者]

Dim data() As String = {"A", "B", "C", "D", "E"}
For Each r As Row In Tables("表A").Rows
    If Array.IndexOf(data, r("第一列")) = -1 Then
        r("第二列") = "中转"
    Else
        r("第二列") = Nothing
    End If
Next

 

  这样试试!


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


加好友 发短信
等级:小狐 帖子:319 积分:3465 威望:0 精华:0 注册:2012/4/24 14:47:00
  发帖心情 Post By:2012/11/20 9:33:00 [只看该作者]

以下是引用lin_hailun在2012-11-19 13:55:00的发言:
 楼主,这个代码是一次性的。你如果想修改以后同步,就编写表属性->事件->datacolchanged

Select Case e.DataCol.Name
    Case "A"
        Dim data() As String = {"A", "B", "C", "D", "E"}
        If e.DataRow.IsNull("A")=False AndAlso Array.IndexOf(data, e.DataRow("A")) = -1 Then
            e.DataRow("B") = "中转"
        End If
End Select
谢谢 谢谢。 这个用了后,假如先输入z,B列对应行出现输入了,然后把z修改为A,B列对应行这次没有修改了。


[此贴子已经被作者于2012-11-19 14:05:30编辑过]


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/20 9:35:00 [只看该作者]

Select Case e.DataCol.Name
    Case "A"
        Dim data() As String = {"A", "B", "C", "D", "E"}
        If e.DataRow.IsNull("A")=False AndAlso Array.IndexOf(data, e.DataRow("A")) = -1 Then
            e.DataRow("B") = "中转"
        Else
            e.DataRow("B") = Nothing
        End If
End Select

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


加好友 发短信
等级:小狐 帖子:319 积分:3465 威望:0 精华:0 注册:2012/4/24 14:47:00
  发帖心情 Post By:2012/11/20 9:36:00 [只看该作者]

以下是引用blackzhu在2012-11-19 14:00:00的发言:

Dim data() As String = {"A", "B", "C", "D", "E"}
For Each r As Row In Tables("表A").Rows
    If Array.IndexOf(data, r("第一列")) = -1 Then
        r("第二列") = "中转"
    Else
        r("第二列") = Nothing
    End If
Next

 

  这样试试!

    哦哦 太感谢了,大哥你的代码怎么样子让A列中空白时B列中也是空白呢?请指点……

 

       


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


加好友 发短信
等级:小狐 帖子:319 积分:3465 威望:0 精华:0 注册:2012/4/24 14:47:00
  发帖心情 Post By:2012/11/20 10:05:00 [只看该作者]

搞定! 目的达到。。再次感谢。


 回到顶部