以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表达式列错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89622)

--  作者:lur320
--  发布时间:2016/8/25 16:05:00
--  表达式列错误

rw2 = Tables("工单").FindRow("[工单编号] = \'" & e.Form.Controls("TextBox1").value & "\' And [生产线别]= \'" & line &  "\'")
            If rw2 < 0 Or e.Form.Controls("TextBox1").value = ""  Then
                DataTables("工单").AddNew
                rw2 = Tables("工单").FindRow("[工单编号] is null and [成品料号] is null")
                Dim cls As new List(of Integer) \'找工单的最大编号
                For Each ts As DataRow In DataTables("工单").DataRows
                    cls.add(val(ts("工单编号")))
                Next
                cls.sort
                wono=cls(cls.count-1)+1
            Else
                DataTables("工单").DeleteFor("[工单编号]>\'" & e.Form.Controls("TextBox1").value & "\' And [生产线别]= \'" & line &  "\'")
                wono=e.Form.Controls("TextBox1").value
                DataTables("工单").AddNew

如上代码,

在红色部分的功能的目的是找到对应的工单编号,然后把大于这个号码的行删除。

但是我在‘e.Form.Controls("TextBox1").value’ 里面输入12的时候,会把编号为2~9的行都删除了。

 

貌似这个红色部分的是按照1,10,100..2  的ASC代码排序的,所以2大于12。

有什么办法可以让红色的代码工作正常?

 

[此贴子已经被作者于2016/8/25 16:11:35编辑过]

--  作者:大红袍
--  发布时间:2016/8/25 16:54:00
--  
你的 工单编号 列,需要改成数值列。