Foxtable(狐表)用户栏目专家坐堂 → 求助窗口控制代码


  共有10441人关注过本帖树形打印复制链接

主题:求助窗口控制代码

帅哥哟,离线,有人找我吗?
红叶
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
求助窗口控制代码  发帖心情 Post By:2010/10/20 13:46:00 [只看该作者]

"订单表"和"订单明细"通过"订单编号"建立关联,"订单表"设有一个"录入窗口".

"订单表"中有一列"单号",列属性的"禁止重复"设为"TRUE",在主表中如果输入重复的单号,会生效,有重复的提.

"订单表"的"录入窗口"中有一个TEXTBOX已邦定要主表的单号列,问题是在这个文本框中输入重复的单号,却禁止重复不生效,请问是为什么?是不是在此文本框中需要另设事件代码?那代码又为何写呢和写在哪个事件中呢?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/10/20 15:33:00 [只看该作者]

这个属性针对的是表格,对于窗口无效。

你可以自己在DataColChanging设置代码,检查表中是否存在新输入的值,如果存在,则取消修改。


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/10/20 15:34:00 [只看该作者]

 

TextBox 的 leave事件代码:

 

Dim drs As List(Of DataRow)
drs = DataTables("outtable").Select("[单号] = '" & e.Form.Controls("TextBox2").text & "'")
If drs.count > 1 
    messagebox.show("此单号已存在,请重新选择!","提示") 
    e.Form.Controls("TextBox2").value = Nothing

    e.Form.Controls("TextBox2").Select()
End If


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/10/21 18:16:00 [只看该作者]

 

我们知道,列有禁止输入重复内容的属性,不过这个属性有局限,就是只有直接在表格中输入的时候才有效,如果你通过窗口输入或者是通过代码设置,同样可以输入重复内容。

我们可以在DataColChanging事件中设置代码,使得不管通过任何方式修改列的内容,都不能输入重复值,例如希望工号列不能输入重复值:

If e.DataCol.Name = "工号" Then
    Dim
dr As DataRow
    dr = e.
DataTable.Find("工号 = '" & e.NewValue & "'")
   
If dr IsNot Nothing Then
        MessageBox.Show(
"此工号已经存在!")
        e.Cancel =
True
    End
If
End
If


 回到顶部