以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  上一个下一个的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=65956)

--  作者:swagger
--  发布时间:2015/3/26 15:02:00
--  上一个下一个的问题
订单窗口,设置如果单号为空就不能新增,在表格DataColChanging或者在设置空间=“”也行可以,但是如果点击上一个或下一个订单就失效了,除了在上下一个设置单号不能为空代码,还有没有其他办法避免这个漏洞?
--  作者:有点甜
--  发布时间:2015/3/26 15:05:00
--  

 单号为空不能新增,那你就应该在新增按钮,或者新增事件datarowadding事件,写判断的代码啊


--  作者:swagger
--  发布时间:2015/3/26 16:53:00
--  
以下是引用有点甜在2015/3/26 15:05:00的发言:

 单号为空不能新增,那你就应该在新增按钮,或者新增事件datarowadding事件,写判断的代码啊

不行啊,譬如

 

增加一行按钮的代码是:

If Tables("订单").Current("单号") ="" Then
    MessageBox.Show("单号不能为空!")

End If

 

如果单号为空就增加不了

 

但是按上一个 .Position = .Position - 1 之后,之前的订单的单号是有内容,所以这个时候按新增订单就可以增加了


--  作者:swagger
--  发布时间:2015/3/26 16:54:00
--  
放在datarowadding或者beforerow也不行
--  作者:blsu33
--  发布时间:2015/3/26 17:02:00
--  
单号为空,不允许上下一行的移动;
在上下移动的Button  中加入
If Tables("订单").Current("单号") ="" Then
    MessageBox.Show("单号不能为空!")

End If

--  作者:有点甜
--  发布时间:2015/3/26 17:13:00
--  
以下是引用swagger在2015/3/26 16:54:00的发言:
放在datarowadding或者beforerow也不行

 

不可能,那请上传例子


--  作者:swagger
--  发布时间:2015/3/26 17:15:00
--  
以下是引用blsu33在2015/3/26 17:02:00的发言:
单号为空,不允许上下一行的移动;
在上下移动的Button  中加入
If Tables("订单").Current("单号") ="" Then
    MessageBox.Show("单号不能为空!")

End If

我在一楼已经说了这个办法,我是问有没有更好的办法,因为这个办法没那么灵活。在datarowadding加了判断代码如

If e.DataRow("会员姓名") = "" Then    MessageBox.Show("会员姓名必须输入") ,然后在窗口新增控件用table("表A).addnew(), 这样子显示"会员姓名必须输入"的窗口,但是表A还是会新增一行,这个代码该怎么写?


--  作者:有点甜
--  发布时间:2015/3/26 17:22:00
--  

 谁叫你这样写代码啊。BeforeAddDataRow事件,这样写

 

If Tables("订单").Current("单号") = "" Then
    MessageBox.Show("单号不能为空!")
    e.Cancel = true
End If