以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 未将对象引用设置到对象的实例。 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117529) |
-- 作者:刘林 -- 发布时间:2018/4/14 8:33:00 -- 未将对象引用设置到对象的实例。 Dim c7 As String = e.Form.Controls("combobox7").text Dim dt As Table = Tables("学生信息") If dt.Rows.count>0 Dim p As WinForm.ProgressBar p = e.Form.Controls("ProgressBar1") p.Maximum = dt.Rows.Count \'设置最大值 p.Minimum = 0 \'设置最小值 p.Value = 0 \'设置当前值 If c7 >"" Dim year As String = trim(c7.Substring(0,2)) Dim v As Integer = cint(year) Dim ji As String = c7.Substring(2,1) Dim j As Integer If ji = "春" j = 0 End If If ji = "秋" j = 1 End If Dim Cols1() As String = {"学校名称","学生姓名","身份证件号","学籍号","班级"} Dim Cols2() As String = {"学校名称","姓名","身份证号","学籍号","级"} Dim su As Integer = 0 Dim dr2 As DataRow For Each dr1 As Row In dt.Rows Dim Filter As String = "" If dr1.IsNull("身份证件号") Then filter = "身份证号 is Null and 姓名 = \'" & dr1("学生姓名") & "\' and 级=\'" & dr1("班级") & "\' and 考试名称=\'" & c7 & "\' and 学校名称 = \'"& _usergroup & "\'" Else filter = "身份证号 = \'" & dr1("身份证件号") & "\' and 姓名 = \'" & dr1("学生姓名") & "\' and 级 = \'" & dr1("班级") & "\'and 考试名称=\'" & c7 & "\' and 学校名称 = \'"& _usergroup & "\'" End If dr2 = DataTables("生地报名库").Find(filter) If dr2 Is Nothing Then If dr1("年级")= "初中2016级" dr2 = DataTables("生地报名库").AddNew() End If If dr1("年级")= "初中2015级" Dim ks As String = "17春中考" Dim yjks As DataRow = DataTables("成绩").sqlFind("身份证件号 = \'" & dr1("身份证件号") & "\' And 考试名称 =\'" & ks & "\'") If yjks IsNot Nothing If yjks("总分")> yjks("生物_")+yjks("地理_") dr2 = DataTables("生地报名库").AddNew() End If End If End If (如果是2015级,在成绩中找这个人如果有且总分超过生物+地理则增加补考) End If For i As Integer = 0 To Cols1.Length -1 dr2(Cols2(i)) = dr1(Cols1(i)) Next dr2("考试名称") = c7 dr2("年级")= trim(str(v - val(trim(year)) + j+9)) su = su +1 p.Value = su Next End If End If NET Framework 版本:2.0.50727.8000 Foxtable 版本:2018.3.9.1 错误所在事件:窗口,中考报名(gai),Button22,Click 详细错误信息: 未将对象引用设置到对象的实例。 测试到If dr1("年级")= "初中2015级"出错,觉得应该是这样,请问老师,哪里有问题,没看出来呢
[此贴子已经被作者于2018/4/14 8:37:23编辑过]
|
-- 作者:有点蓝 -- 发布时间:2018/4/14 9:23:00 -- 这一句代码没有问题,如果有上面一句就出错了:If dr1("年级")= "初中2016级" 是不是列名有错?或者是后面的说明文字没有注释掉
|
-- 作者:刘林 -- 发布时间:2018/4/14 12:10:00 -- 列名没有错,当为2016级时是可以增加的,但当到2015级因要判定就出错了 |
-- 作者:有点蓝 -- 发布时间:2018/4/14 14:14:00 -- For Each dr1 As Row In dt.Rows Dim Filter As String = "" If dr1.IsNull("身份证件号") Then filter = "身份证号 is Null and 姓名 = \'" & dr1("学生姓名") & "\' and 级=\'" & dr1("班级") & "\' and 考试名称=\'" & c7 & "\' and 学校名称 = \'"& _usergroup & "\'" Else filter = "身份证号 = \'" & dr1("身份证件号") & "\' and 姓名 = \'" & dr1("学生姓名") & "\' and 级 = \'" & dr1("班级") & "\'and 考试名称=\'" & c7 & "\' and 学校名称 = \'"& _usergroup & "\'" End If dr2 = DataTables("生地报名库").Find(filter) If dr2 Is Nothing Then If dr1("年级")= "初中2016级" dr2 = DataTables("生地报名库").AddNew() End If If dr1("年级")= "初中2015级" Dim ks As String = "17春中考" Dim yjks As DataRow = DataTables("成绩").sqlFind("身份证件号 = \'" & dr1("身份证件号") & "\' And 考试名称 =\'" & ks & "\'") If yjks IsNot Nothing If yjks("总分")> yjks("生物_")+yjks("地理_") dr2 = DataTables("生地报名库").AddNew() End If End If End If (如果是2015级,在成绩中找这个人如果有且总分超过生物+地理则增加补考) End If If dr2 IsNot Nothing Then For i As Integer = 0 To Cols1.Length -1 dr2(Cols2(i)) = dr1(Cols1(i)) Next dr2("考试名称") = c7 dr2("年级")= trim(str(v - val(trim(year)) + j+9)) su = su +1 p.Value = su End If Next
|