以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]一表数据变更后自动更新其他数据表字段值报错,求教,多谢。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91263) |
-- 作者:ksaa16888 -- 发布时间:2016/10/5 21:10:00 -- [求助]一表数据变更后自动更新其他数据表字段值报错,求教,多谢。 在“黑名单”数据表datacolchangededit加入代码判断,如果该表有新增户名,则自动在“账户开户”、“账户变更”、“账户”三个表中自动查找是否有该户名,如果有,则弹出对话框提醒用户,点击“确认”后这三个表中的字段“是否黑名单”(逻辑型)的值变为TRUE,否则还是FAlse,结果报错:未知编译错误,请教下哪里出问题了?多谢。 If e.DataCol.Name = "户名" Dim Filter As String = "[户名] = \'" & e.DataRow("户名") & "\'" Dim jcxx As List(Of DataRow) = DataTables("核准类账户开户").Select(Filter) Dim hzbg As List(of DataRow)=DataTables("核准类账户变更").Select(filter) Dim fhz As List(of DataRow)=DataTables("非核准类账户").Select(filter) For Each dr1 As DataRow In jcxx dr("是否黑名单") = True MessageBox.Show("请注意表中有账户进入黑名单!") Next For Each dr2 As DataRow In hzbg dr2("是否黑名单") = True MessageBox.Show("请注意表中有账户进入黑名单!") Next For Each dr3 As DataRow In fhz dr3("是否黑名单")=True MessageBox.Show("请注意表中有账户进入黑名单!") Next End If |
-- 作者:sjx71 -- 发布时间:2016/10/5 22:08:00 -- For Each dr1 As DataRow In jcxx dr("是否黑名单") = True MessageBox.Show("请注意表中有账户进入黑名单!") Next 应该为 dr1("是否黑名单“) = True
|
-- 作者:ksaa16888 -- 发布时间:2016/10/5 23:40:00 -- 感谢!我心都要滴血了,这么低级的错误也没看出来。改过后可以执行了,但是问题又来了。如果我在黑名单表中删除了一个户名数据,其他三个表要同步实现是否黑名单字段值的逻辑值自动变更为否,但上述代码实现不了,我又编辑了下代码,但是又报编译错误,不知道又是哪里出错了。 If e.DataCol.Name = "户名" Then Dim Filter As String = "[户名] = \'" & e.DataRow("户名") & "\'" Dim jcxx As List(Of DataRow) = DataTables("账户开户").Select(Filter) Dim hzbg As List(of DataRow)=DataTables("账户变更").Select(filter) Dim fhz As List(of DataRow)=DataTables("账户").Select(filter) For Each dr1 As DataRow In jcxx If dr1("户名")=e.newvalue Then dr1("是否黑名单") = True MessageBox.Show("请注意《账户开户》表中有账户进入黑名单!") Else dr1("是否黑名单") = False MessageBox.Show("请注意《账户开户》表中有账户取消黑名单!") End If Next For Each dr2 As DataRow In hzbg Then If dr2("户名")=e.newvalue Then dr2("是否黑名单") = True MessageBox.Show("请注意《账户变更》表中有账户进入黑名单!") Else dr2("是否黑名单")=False MessageBox.Show("请注意《账户变更》表中有账户取消黑名单!")f End If Next For Each dr3 As DataRow In fhz If dr3("户名")=e.newvalue Then dr3("是否黑名单")=True MessageBox.Show("请注意《账户》表中有账户进入黑名单!") Else dr3("是否黑名单")=False MessageBox.Show("请注意《账户》表中有账户取消黑名单!") End If Next End If |
-- 作者:有点蓝 -- 发布时间:2016/10/6 8:51:00 -- DataColChanged事件 If e.DataCol.Name = "户名" Then Dim Filter As String If e.NewValue > "" Then Filter = "[户名] = \'" & e.NewValue & "\'" If DataTables("账户开户").Find(Filter) IsNot Nothing Then DataTables("账户开户").ReplaceFor("是否黑名单",True,Filter) MessageBox.Show("请注意《账户开户》表中有账户进入黑名单!") End If If DataTables("账户变更").Find(Filter) IsNot Nothing Then DataTables("账户变更").ReplaceFor("是否黑名单",True,Filter) MessageBox.Show("请注意《账户变更》表中有账户进入黑名单!") End If If DataTables("账户").Find(Filter) IsNot Nothing Then DataTables("账户").ReplaceFor("是否黑名单",True,Filter) MessageBox.Show("请注意《账户》表中有账户进入黑名单!") End If End If If e.OldValue > "" Then Filter = "[户名] = \'" & e.OldValue & "\'" If DataTables("账户开户").Find(Filter) IsNot Nothing Then DataTables("账户开户").ReplaceFor("是否黑名单",False,Filter) MessageBox.Show("请注意《账户开户》表中有账户取消黑名单!") End If If DataTables("账户变更").Find(Filter) IsNot Nothing Then DataTables("账户变更").ReplaceFor("是否黑名单",False,Filter) MessageBox.Show("请注意《账户变更》表中有账户取消黑名单!") End If If DataTables("账户").Find(Filter) IsNot Nothing Then DataTables("账户").ReplaceFor("是否黑名单",False,Filter) MessageBox.Show("请注意《账户》表中有账户取消黑名单!") End If End If End If DataRowDeleting事件 If e.DataRow.IsNull("户名")= False Then dim Filter = "[户名] = \'" & e.DataRow("户名") & "\'" If DataTables("账户开户").Find(Filter) IsNot Nothing Then DataTables("账户开户").ReplaceFor("是否黑名单",False,Filter) MessageBox.Show("请注意《账户开户》表中有账户取消黑名单!") End If If DataTables("账户变更").Find(Filter) IsNot Nothing Then DataTables("账户变更").ReplaceFor("是否黑名单",False,Filter) MessageBox.Show("请注意《账户变更》表中有账户取消黑名单!") End If If DataTables("账户").Find(Filter) IsNot Nothing Then DataTables("账户").ReplaceFor("是否黑名单",False,Filter) MessageBox.Show("请注意《账户》表中有账户取消黑名单!") End If End If |
-- 作者:ksaa16888 -- 发布时间:2016/10/6 19:22:00 -- 多谢。我好好学下。 |