Foxtable(狐表)用户栏目专家坐堂 → 对象引用未设置为对象的实例。


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

主题:对象引用未设置为对象的实例。

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
对象引用未设置为对象的实例。  发帖心情 Post By: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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By: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.


老师,还是出现这个错误

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2016/4/12 16:05:00 [只看该作者]

错误翻译过来就是:对象引用未设置为对象的实例。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/12 16:07:00 [只看该作者]

 上面代码不可能报错。自己调试

 

 http://www.foxtable.com/help/topics/1485.htm

 

 


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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By: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 '那么返回
                
应该是这段代码定义对象有问题

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/12 16:21:00 [只看该作者]

改成

 

dr1 = DataTables("科目明细").Find("[凭证号]  = '" & r("凭证号") & "'And [一级科目名称] = '" & r("一级科目名称") & "'")


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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2016/4/12 16:40:00 [只看该作者]

谢谢老师,有时看似没问题,一小点不同结果大不一样!!

 回到顶部