Foxtable(狐表)用户栏目专家坐堂 → 请教代码问题


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

主题:请教代码问题

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
请教代码问题  发帖心情 Post By:2017/6/19 8:54:00 [只看该作者]

老师,早上好!

请教问题:
Select Case e.DataCol.Name
    Case "第一列","第二列"
        If e.DataRow("第一列") = "A" Then
            If e.DataRow("第二列") = "B" Then
                e.DataRow("第三列") = "C"
            End If
        End If
End Select

上段代码运行后,第三列可以得出C;但下面的代码不行,请问如何修改:

我的逻辑是:当第一列出现A,第二列只要出现B,第三列就等于C

Select Case e.DataCol.Name
    Case "第一列","第二列"
        If e.DataRow("第一列") Like "%A%" Then
            If e.DataRow("第二列") Like "%B%" Then
                e.DataRow("第三列") = "C"
            End If
        End If
End Select

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


加好友 发短信
等级:六尾狐 帖子:1310 积分:9512 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2017/6/19 8:55:00 [只看该作者]

Select Case e.DataCol.Name
    Case "第一列","第二列"
        If e.DataRow("第一列") Like "'%A%'" Then
            If e.DataRow("第二列") Like "'%B%'" Then
                e.DataRow("第三列") = "C"
            End If
        End If
End Select

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2017/6/19 9:24:00 [只看该作者]


代码我试了,还是不行

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2017/6/19 9:38:00 [只看该作者]

经测试,内部表,以下代码可以正常运行

Select Case e.DataCol.Name
    Case "第一列","第二列"
        If e.DataRow("第一列") Like "*A*" Then
            If e.DataRow("第二列") Like "*B*" Then
                e.DataRow("第三列") = "C"
            End If
        End If
End Select

如果是外部数据源sql server,上面代码不行,请问应该如何修改代码?

[此贴子已经被作者于2017/6/19 9:39:54编辑过]

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


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

加入红色代码,看弹出什么
 
Select Case e.DataCol.Name
    Case "第一列","第二列"
        msgbox(e.datarow("第一列") & vbcrlf & e.DataRow("第一列") Like "*A*")
        If e.DataRow("第一列") Like "*A*" Then
            If e.DataRow("第二列") Like "*B*" Then
                e.DataRow("第三列") = "C"
            End If
        End If
End Select

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2017/6/19 10:28:00 [只看该作者]


内部表测试(商业版),
如果第一列含A,弹出True;第二列含B,会再次弹出True;
如果第一列不含A,弹出False;第二列不含B,会再次弹出False

外部表测试(开发板),不弹出任何东西

[此贴子已经被作者于2017/6/19 10:28:31编辑过]

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2017/6/19 10:46:00 [只看该作者]

上述代码外部表测试(商业版)能正常运行

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


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

 回复6楼,你把你项目的bin文件夹删除,重新打开项目测试。

 

 在datacolchanged事件写代码,msgbox(e.newvalue),修改表数据,看能否弹出值。


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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2017/6/19 13:09:00 [只看该作者]

上述代码外部表测试(开发版)也能正常运行。

可能是因为第三列我设置了下拉列表的问题,换成没有下拉列表的第四列后,运行正常。

有下拉列表的字段可以通过代码写入值吗?
[此贴子已经被作者于2017/6/19 13:12:13编辑过]

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2017/6/19 13:49:00 [只看该作者]


把第三列数据表下拉列表改成自定义录入界面的下拉列表后,可以正常运行了。

成功解决!

 回到顶部