以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  sortkey不能赋值  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=151606)

--  作者:lur320
--  发布时间:2020/6/29 11:29:00
--  sortkey不能赋值
如下排序代码,希望空白的内容不参与排序。
但发现错误显示sortkey不属于表。
后来在设置标识列后错误消失,但是sortkey始终不能赋值。
去了SQL里面看,这一列数据一致是1,2,3,4,5,6.。。。的排序。

请问为何?

For Each dr As Row In CurrentTable.Rows
    If dr.Isnull(CurrentTable.ColSel) Then
        dr("_SortKey") = 1
    Else
        dr("_SortKey") = 0
    End If
dr.save
Next
Dim tt As String=CurrentTable.Cols(CurrentTable.ColSel).Name
CurrentTable.Sort="_SortKey," & tt

插入行的sortkey 是OK的,但是不能通过代码修改。

图片点击可在新窗口打开查看此主题相关图片如下:capture.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2020/6/29 11:37:25编辑过]

--  作者:有点蓝
--  发布时间:2020/6/29 11:41:00
--  
CurrentTable有可能是窗口表,查询表,没有这个列是正常的。改为具体的表名试试

For Each dr As Row In Tables("xxxx").Rows

--  作者:lur320
--  发布时间:2020/6/29 11:43:00
--  
试了,依旧不行。不能改sortkey。
这代码是以前就在用的,另外一个数据库OK。只是之前的sortkey是建表就有,这个是后加的标识列。

--  作者:有点蓝
--  发布时间:2020/6/29 12:22:00
--  
    If dr.Isnull(CurrentTable.ColSel) Then
        dr.DataRow.baserow("_SortKey") = 1
    Else
        dr.DataRow.baserow("_SortKey") = 0
    End If


--  作者:lur320
--  发布时间:2020/6/29 13:02:00
--  
为啥在另外一个项目里面可以直接用?sortkey建立先后有关系吗?


--  作者:有点蓝
--  发布时间:2020/6/29 13:40:00
--  
没有关系。用肯定都可以,赋值一般要通过baserow