以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求助窗口控制代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8412) |
-- 作者:红叶 -- 发布时间:2010/10/20 13:46:00 -- 求助窗口控制代码 "订单表"和"订单明细"通过"订单编号"建立关联,"订单表"设有一个"录入窗口". "订单表"中有一列"单号",列属性的"禁止重复"设为"TRUE",在主表中如果输入重复的单号,会生效,有重复的提. "订单表"的"录入窗口"中有一个TEXTBOX已邦定要主表的单号列,问题是在这个文本框中输入重复的单号,却禁止重复不生效,请问是为什么?是不是在此文本框中需要另设事件代码?那代码又为何写呢和写在哪个事件中呢? |
-- 作者:狐狸爸爸 -- 发布时间:2010/10/20 15:33:00 -- 这个属性针对的是表格,对于窗口无效。 你可以自己在DataColChanging设置代码,检查表中是否存在新输入的值,如果存在,则取消修改。 |
-- 作者:mr725 -- 发布时间:2010/10/20 15:34:00 --
TextBox 的 leave事件代码:
Dim drs As List(Of DataRow) e.Form.Controls("TextBox2").Select() |
-- 作者:狐狸爸爸 -- 发布时间:2010/10/21 18:16:00 -- 我们知道,列有禁止输入重复内容的属性,不过这个属性有局限,就是只有直接在表格中输入的时候才有效,如果你通过窗口输入或者是通过代码设置,同样可以输入重复内容。 我们可以在DataColChanging事件中设置代码,使得不管通过任何方式修改列的内容,都不能输入重复值,例如希望工号列不能输入重复值: If e.DataCol.Name = "工号" ThenDim dr As DataRow dr = e.DataTable.Find("工号 = \'" & e.NewValue & "\'") If dr IsNot Nothing Then MessageBox.Show("此工号已经存在!") e.Cancel = True End If End If |