以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教代码问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=102385)

--  作者:chh2321
--  发布时间: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
--  发布时间: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
--  发布时间:2017/6/19 9:24:00
--  

代码我试了,还是不行

--  作者:chh2321
--  发布时间: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编辑过]

--  作者:有点色
--  发布时间: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
--  发布时间:2017/6/19 10:28:00
--  

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

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

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

--  作者:chh2321
--  发布时间:2017/6/19 10:46:00
--  
上述代码外部表测试(商业版)能正常运行
--  作者:有点色
--  发布时间:2017/6/19 10:51:00
--  

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

 

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


--  作者:chh2321
--  发布时间:2017/6/19 13:09:00
--  
上述代码外部表测试(开发版)也能正常运行。

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

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

--  作者:chh2321
--  发布时间:2017/6/19 13:49:00
--  

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

成功解决!