以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助?表中各列都是数据列,如何把判断出的大小情况自动填入下一行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171485)

--  作者:xnsiwei
--  发布时间:2021/8/31 21:00:00
--  求助?表中各列都是数据列,如何把判断出的大小情况自动填入下一行?
表中各列都是数据列
有多行数据
对每个数据要进行区间判断,如何将判断出的结果自动填入下一行?

--  作者:有点蓝
--  发布时间:2021/8/31 21:24:00
--  
没看懂,请举例说明
--  作者:xnsiwei
--  发布时间:2021/8/31 22:02:00
--  
序号  张三  李四 王五
语文  99    80   100    
数学   88    60    90

判断各行分数大于60为及格在分数下面一行标为3,大于80为良好在分数下面一行标为2,大于90为优秀在分数下面一行标为1

如何实现?谢谢!

--  作者:有点蓝
--  发布时间:2021/8/31 22:10:00
--  
分数下面一行是指哪一行?请截图说明
--  作者:xnsiwei
--  发布时间:2021/9/1 6:45:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:uc截图20210901064306.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/9/1 8:53:00
--  
蛋疼的用法,并且使用人名做列名更是蛋疼。这个需求看不出有什么意义,再说也无法做进一步统计分析。还不如使用颜色标记

Dim t As Table = Tables("表A")
Dim r,nr As Row
For i As Integer = t.rows.count - 1 To 0 Step -1
    r = t.rows(i)
    For Each c As Col In t.cols
        If c.name <> "序号" Then
            If r(c.name) > 60 Then
                If nr Is Nothing Then
                    If i = t.rows.count - 1 Then
                        nr = t.addnew
                    Else
                        t.position = r.index + 1
                        nr = t.insertnew
                    End If
                End If
            End If
            If r(c.name) > 90
                nr(c.name) = 1
            ElseIf r(c.name) > 80
                nr(c.name) = 2
            End If
        End If
    Next
    nr = Nothing
Next

--  作者:chnfo
--  发布时间:2021/9/1 10:48:00
--  
数据库设计应当是姓名、科目、分数,然后增加一个表达式列:等级
表达式可以用公式:iif(分数>90,1,iif(分数>80,2,3))

如果是要展示,可以用交叉表(类似excel表格的数据透视表)

这是希望在数据库的表中所见即所得啊,这个确实蛋疼得晕过去了
[此贴子已经被作者于2021/9/1 10:50:01编辑过]

--  作者:xnsiwei
--  发布时间:2021/9/1 14:19:00
--  
非常感谢!