以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 对象引用未设置为对象的实例。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83565) |
-- 作者:爱相随 -- 发布时间:2016/4/12 15:54:00 -- 对象引用未设置为对象的实例。 老师,在按钮代码执行时出现错误,请老师帮忙,谢谢!!感觉带色部分的代码不完整,但又不晓得怎么添加(想要表达代码的意思是,在科目明细表查找凭证号和一级科目名称都相同的行,如果找到,则不用复制,如果没有找到,则复制勾选中没有找到的行。),我的代码如下: If User.IsRole("财务") Then For Each r As Row In CurrentTable.Rows If r("选择") = True Then Dim dr1 As DataRow \'否则在科目明细表查找同名的凭证号和一级科目名称行,将找到的行赋值给变量dr1 dr1 = DataTables("科目明细").Find("[凭证号] = \'" & dr1("凭证号") & "\'And [一级科目名称] = \'" & dr1("一级科目名称") & "\'") If dr1 IsNot Nothing Then \'如果没有找到同名的凭证号和一级科目名称行,也就是dr1为Nothing Return \'那么返回 End If Else Dim nma() As String = { "日期","科目编码","凭证号","一级科目名称","借方金额","贷方金额" } \'A表数据来源列 Dim nmb() As String = { "日期","科目编码","凭证号","一级科目名称","借方金额","贷方金额" } \'B表数据接收列 Dim dr As DataRow = DataTables("科目明细").AddNew For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = r(nma(i)) Next MainTable = Tables("科目明细") \'选择表B作为主表. End If Next End If End If Next End If |
-- 作者:大红袍 -- 发布时间:2016/4/12 15:58:00 -- If User.IsRole("财务") Then For Each r As Row In CurrentTable.Rows If r("选择") = True Then Dim dr1 As DataRow \'否则在科目明细表查找同名的凭证号和一级科目名称行,将找到的行赋值给变量dr1 dr1 = DataTables("科目明细").Find("[凭证号] = \'" & r("凭证号") & "\'And [一级科目名称] = \'" & r("一级科目名称") & "\'") If dr1 IsNot Nothing Then \'如果没有找到同名的凭证号和一级科目名称行,也就是dr1为Nothing Return \'那么返回 Else Dim nma() As String = { "日期","科目编码","凭证号","一级科目名称","借方金额","贷方金额" } \'A表数据来源列 Dim nmb() As String = { "日期","科目编码","凭证号","一级科目名称","借方金额","贷方金额" } \'B表数据接收列 Dim dr As DataRow = DataTables("科目明细").AddNew For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = r(nma(i)) Next MainTable = Tables("科目明细") \'选择表B作为主表. End If End If Next End If [此贴子已经被作者于2016/4/12 16:21:22编辑过]
|
-- 作者:爱相随 -- 发布时间:2016/4/12 16:04:00 -- .NET Framework 版本:2.0.50727.3655 Foxtable 版本:2016.4.6.1 错误所在事件:菜单,科目明细表,Click 详细错误信息: Object reference not set to an instance of an object. 老师,还是出现这个错误
|
-- 作者:爱相随 -- 发布时间:2016/4/12 16:05:00 -- 错误翻译过来就是:对象引用未设置为对象的实例。 |
-- 作者:大红袍 -- 发布时间:2016/4/12 16:07:00 -- 上面代码不可能报错。自己调试
http://www.foxtable.com/help/topics/1485.htm
|
-- 作者:爱相随 -- 发布时间:2016/4/12 16:07:00 -- Dim dr1 As DataRow \'否则在科目明细表查找同名的凭证号和一级科目名称行,将找到的行赋值给变量dr1 dr1 = DataTables("科目明细").Find("[凭证号] = \'" & dr1("凭证号") & "\'And [一级科目名称] = \'" & dr1("一级科目名称") & "\'") If dr1 IsNot Nothing Then \'如果没有找到同名的凭证号和一级科目名称行,也就是dr1为Nothing Return \'那么返回 应该是这段代码定义对象有问题
|
-- 作者:大红袍 -- 发布时间:2016/4/12 16:21:00 -- 改成
dr1 = DataTables("科目明细").Find("[凭证号] = \'" & r("凭证号") & "\'And [一级科目名称] = \'" & r("一级科目名称") & "\'") |
-- 作者:爱相随 -- 发布时间:2016/4/12 16:40:00 -- 谢谢老师,有时看似没问题,一小点不同结果大不一样!! |