以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]一张表数据变更、增加或删除,自动同步更新另外三张表某一字段,编译错误,盼指教,多谢。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91270) |
-- 作者:ksaa16888 -- 发布时间:2016/10/6 0:15:00 -- [求助]一张表数据变更、增加或删除,自动同步更新另外三张表某一字段,编译错误,盼指教,多谢。 在“黑名单”数据表datacolchangededit加入代码判断,如果该表有新增户名,则自动在“账户开户”、“账户变更”、“账户”三个表中自动查找是否有该户名,如果有,则弹出对话框提醒用户,点击“确认”后这三个表中的字段“是否黑名单”(逻辑型)的值变为TRUE,否则还是FAlse,如果我在“黑名单”数据表删除了一个户名,其他三个表要同步判断,查找“是否黑名单”字段值的逻辑值,并且自动变更为否,但是报编译错误,不知道是语法还是哪里出错了。盼指教,多谢。 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 7:06:00 -- 1 看到一个冗余的地方。在 Dim jcxx 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 2 可以通过加载(外部数据库)或筛选把数据界定好之后,统一用替换语句一次性更新,保存; 3 没有看到你更新数据后的保存语句;
|
-- 作者:有点蓝 -- 发布时间:2016/10/6 9:23:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=91263 |