Foxtable(狐表)用户栏目专家坐堂 → 如何根据多列值判断某列值?


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

主题:如何根据多列值判断某列值?

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
如何根据多列值判断某列值?  发帖心情 Post By:2016/10/20 11:17:00 [显示全部帖子]

 我想根据多列值计算某一列的值,在表Datachanged事件中写入代码,但是没有得到我想要的结果,请问问题出在哪里?
表如下:
图片点击可在新窗口打开查看

代码如下:
图片点击可在新窗口打开查看

请老师指教!

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2016/10/20 11:56:00 [显示全部帖子]

 计算逻辑:
第四列≥4并且第五列≥120并且第六列≥100,则第七列=0;
第四列≥3 或 第五列≥90 或 第六列≥75,则第七列=1;
第四列≥2 或 第五列≥60 或 第六列≥50,则第七列=2;
第四列≥1 或 第五列≥30 或 第六列≥25,则第七列=3;
否则
第七列=4

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2016/10/20 12:08:00 [显示全部帖子]

现在根据代码运行结果来看,第七列的值不符合上面的计算逻辑。

请老师指教

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2016/10/20 15:11:00 [显示全部帖子]

 以下两行不符合:
 第4行第4列2.75,第七列应该是2;
 第8行第6列63,第七列应该是2

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


加好友 发短信
等级:童狐 帖子:253 积分:2573 威望:0 精华:0 注册:2016/8/8 9:50:00
  发帖心情 Post By:2016/10/20 22:44:00 [显示全部帖子]

原数据类型(单精度型和整数型)没有问题。

问题已得到解决,代码如下:

Select Case e.DataCol.Name
    Case "第四列","第五列","第六列"
        If e.DataRow("第四列") < 1  Or e.DataRow("第五列") < 30 Or e.DataRow("第六列") < 25 Then
            e.DataRow("第七列") = 4
        ElseIf e.DataRow("第四列") < 2 Or e.DataRow("第五列") < 60 Or e.DataRow("第六列") < 50 Then
            e.DataRow("第七列") = 3
        ElseIf e.DataRow("第四列") < 3 Or e.DataRow("第五列") < 90 Or e.DataRow("第六列") < 75 Then
            e.DataRow("第七列") = 2
        ElseIf e.DataRow("第四列") < 4 Or e.DataRow("第五列") < 120 Or e.DataRow("第六列") < 100 Then
            e.DataRow("第七列") = 1
        Else
            e.DataRow("第七列") = 0
        End If
End Select

 回到顶部