Foxtable(狐表)用户栏目专家坐堂 → [求助]如果,跨表引用出现报错就不会赋值了,怎么修改?


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

主题:[求助]如果,跨表引用出现报错就不会赋值了,怎么修改?

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


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
[求助]如果,跨表引用出现报错就不会赋值了,怎么修改?  发帖心情 Post By:2018/3/19 17:12:00 [只看该作者]

If e.DataCol.Name = "学号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("姓名") = Nothing
        e.DataRow("班级") = Nothing
        e.DataRow("大一成绩") = Nothing
        e.DataRow("大二成绩") = Nothing
        e.DataRow("大三成绩") = Nothing
        e.DataRow("大四成绩") = Nothing
    Else
        Dim dr As DataRow
        Dim d1 As DataRow
        Dim d2 As DataRow
        Dim d3 As DataRow
        Dim d4 As DataRow
        dr = DataTables("测试成绩详细").Find("[学号] = '" & e.NewValue & "'")
        d1 = DataTables("测试成绩详细").Find("[学号] = '" & e.NewValue & "' And [年级编号] = '41'")
        d2 = DataTables("测试成绩详细").Find("[学号] = '" & e.NewValue & "' And [年级编号] = '42'")
        d3 = DataTables("测试成绩详细").Find("[学号] = '" & e.NewValue & "' And [年级编号] = '43'")
        d4 = DataTables("测试成绩详细").Find("[学号] = '" & e.NewValue & "' And [年级编号] = '44'")
        If dr IsNot Nothing Then
            e.DataRow("姓名") = dr("姓名")
            e.DataRow("班级") = dr("班级")
            e.DataRow("大一成绩") = d1("总分")
            e.DataRow("大二成绩") = d2("总分")
            e.DataRow("大三成绩") = d3("总分")
            e.DataRow("大四成绩") = d4("总分")
        End If
    End If
End If

以上为代码。
但是,会出现一个问题,如果遇到在“测试成绩详细”表中找不到对应的d1,或者d2,或者d3,或者d4。就会报错,并且不给后面的“大一成绩”,“大二成绩”,“大三成绩”,“大四成绩”赋值。
请问,我在哪里加这个判断语句?怎么修改?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/19 17:15:00 [只看该作者]

改成,参考红色代码修改

 

If dr IsNot Nothing Then
    e.DataRow("姓名") = dr("姓名")
    e.DataRow("班级") = dr("班级")
    If d1 Is Nothing Then
        e.DataRow("大一成绩") = Nothing
    Else
        e.DataRow("大一成绩") = d1("总分")
    End If
    If d2 Is Nothing Then
        e.DataRow("大二成绩") = Nothing
    Else
        e.DataRow("大二成绩") = d2("总分")
    End If

    e.DataRow("大三成绩") = d3("总分")
    e.DataRow("大四成绩") = d4("总分")
End If


 回到顶部