Foxtable(狐表)用户栏目专家坐堂 → [求助]一张表数据变更、增加或删除,自动同步更新另外三张表某一字段,编译错误,盼指教,多谢。


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

主题:[求助]一张表数据变更、增加或删除,自动同步更新另外三张表某一字段,编译错误,盼指教,多谢。

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


加好友 发短信
等级:幼狐 帖子:68 积分:583 威望:0 精华:0 注册:2016/9/8 23:24:00
[求助]一张表数据变更、增加或删除,自动同步更新另外三张表某一字段,编译错误,盼指教,多谢。  发帖心情 Post By: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


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


加好友 发短信
等级:八尾狐 帖子:1960 积分:15536 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By: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 没有看到你更新数据后的保存语句;

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/6 9:23:00 [只看该作者]

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=91263

 回到顶部