以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  未将对象引用设置到对象的实例  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=126852)

--  作者:skyerlin
--  发布时间:2018/10/30 11:52:00
--  未将对象引用设置到对象的实例
问题:将“学生信息表”字段信息写入到“学年收费名单”相应字段,在写入之前判断“学年收费名单”是否存在已有记录(判断条件为“考生号”、“学年”相同),如果 存在记录则覆盖写入,如果不存在相同记录,重新建一行再写入。以下为代码,提示“未将对象引用设置到对象的实例”错误。谢谢。

Dim Cols1() As String = {"考生号","学号","姓名","专业","年级","班级","性别","身份证","籍贯","联系电话","入学时间","注册情况","是否毕业","备注"}
Dim Cols2() As String = {"考生号","学号","姓名","专业","年级","班级","性别","身份证","籍贯","联系电话","入学时间","注册情况","是否毕业","备注"}
Dim t As Table = Tables("学年收费名单")
Dim newcount As Integer = 0
Dim oldcount As Integer = 0
For Each dr1 As DataRow In DataTables("学生信息表").DataRows
    If dr1("是否毕业")="否" And dr1("注册情况")="是" Then
        Dim r As DataRow = t.DataTable.Find("学号= \'" & dr1("考生号")& "\' And 学年= \'" & Tables("基本设置").Text(0,0) & "\'")
        If r Is Nothing Then
            For i As Integer = 0 To Cols1.Length -1
                r(Cols2(i)) = dr1(Cols1(i))
                r("添加时间")=Today.Date()
                oldcount += 1
            Next
        Else
            Dim dr2 As DataRow = DataTables("学年收费名单").AddNew()
            For i As Integer = 0 To Cols1.Length -1
                dr2(Cols2(i)) = dr1(Cols1(i))
                dr2("添加时间")=Today.Date()
                newcount += 1
            Next
            
        End If
    End If
Next
MsgBox("已成功生成缴费名单,新增" & newcount & "    " & "更新旧数据" & oldcount)

未将对象引用设置到对象的实例


--  作者:有点甜
--  发布时间:2018/10/30 12:23:00
--  

If r Is Nothing Then

 

改成

 

If r IsNot Nothing Then