Foxtable(狐表)用户栏目专家坐堂 → [求助]一表数据变更后自动更新其他数据表字段值报错,求教,多谢。


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

主题:[求助]一表数据变更后自动更新其他数据表字段值报错,求教,多谢。

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


加好友 发短信
等级:幼狐 帖子:68 积分:583 威望:0 精华:0 注册:2016/9/8 23:24:00
[求助]一表数据变更后自动更新其他数据表字段值报错,求教,多谢。  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:4602 威望:0 精华:0 注册:2013/5/22 15:32:00
  发帖心情 Post By:2016/10/5 22:08:00 [只看该作者]

 For Each dr1 As DataRow In jcxx
        dr("是否黑名单") = True
        MessageBox.Show("请注意表中有账户进入黑名单!")
    Next

应该为  dr1("是否黑名单“) = True

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


加好友 发短信
等级:幼狐 帖子:68 积分:583 威望:0 精华:0 注册:2016/9/8 23:24:00
  发帖心情 Post By: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


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


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:68 积分:583 威望:0 精华:0 注册:2016/9/8 23:24:00
  发帖心情 Post By:2016/10/6 19:22:00 [只看该作者]

多谢。我好好学下。

 回到顶部