以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于删除的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86815)

--  作者:hopestarxia
--  发布时间:2016/6/27 8:53:00
--  关于删除的问题
有两个表,一个部门表,一个人员表,
人员表中要选择人员所属的部门,(引用部门表的资料)

现在维护部门资料,删除部门,想在删除部门的时候能够检查该部门是否被人员表引用,如果被引用,此提示已被引用,不允许删除的提示。未被引用过的资料才能删除掉。

请问此处怎么实现。

--  作者:Hyphen
--  发布时间:2016/6/27 8:56:00
--  
参考http://www.foxtable.com/help/topics/1451.htm

用find进行查找,如果查找到说明已被引用,代码写到DataRowDeleting事件

--  作者:hopestarxia
--  发布时间:2016/6/27 16:23:00
--  
谢谢,根据你的提示,使用以下语句完成了工作;
Dim cm As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim dr As DataRow = cm.SelectedItem
If dr IsNot Nothing Then
    e.Form.Controls("textbox4").Value = dr("dptid")
End If

不过现在还有一点问题,如果在ComboBox2中先选择了一个值,后面发现如果该列改为不选择时,那么原来由于
第一次点选择时出来 的在textbox4的值,不跟着上面的取消变为空值而同样变为空值。
请指导一下。

--  作者:大红袍
--  发布时间:2016/6/27 16:26:00
--  
试试
 
Dim cm As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim dr As DataRow = cm.SelectedItem
If dr IsNot Nothing Then
    e.Form.Controls("textbox4").Value = dr("dptid")
Else
    e.Form.Controls("textbox4").Value = Nothing
End If

--  作者:hopestarxia
--  发布时间:2016/6/27 16:38:00
--  
谢谢,前面试过这样的语句,不管用。textbox4不跟着变为空。
--  作者:hopestarxia
--  发布时间:2016/6/27 16:50:00
--  
看着理解这个语句应该是可以的,但是将ComboBox2的内容清除后对应的textbox4就是不变化
--  作者:大红袍
--  发布时间:2016/6/27 18:14:00
--  

TextChanged事件

 

Dim cm As WinForm.ComboBox = e.Sender
Dim dr As DataRow = DataTables("表A").find("第一列 = \'" & cm.Text & "\'")
If dr IsNot Nothing Then
    e.Form.Controls("textbox4").Value = dr("dptid")
Else
    e.Form.Controls("textbox4").Value = Nothing
End If