以文本方式查看主题

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

--  作者:zyys2813
--  发布时间:2013/12/27 15:49:00
--  [求助]未将对象引用设置到对象的实例
 

Select Case e.sender.name

    Case "确认出库"

        \'Dim nms() As String = {"领取单位","名称","规格","出库单价","数量","领取人","出库日期"}

        Dim r As Row = Tables("出库").Current

        For Each nm As String  In nms

            If r.isnull(nm) Then

                e.Cancel =True

                messagebox.show(nm & "录入信息不全,请补充完整!")

                Return

            End If

        Dim result1 As DialogResult

        result1 = messagebox.show("选择<是>将保存记录,选择<否>将删除本条记录,选择<取消>继续编辑本条记录","提示",messageboxbuttons.yesnocancel,MessageBoxIcon.Question)

        If result1 = DialogResult.Yes Then

            CurrentTable.Current.save()

            Dim result2 As DialogResult

            result2 = messagebox.show("本条入库已保存,是否再录入一条?","提示",messageboxbuttons.yesno,MessageBoxIcon.Question)

            If result2 = DialogResult.Yes Then

                Tables("出库").AddNew()

            End If           

        Else If result1 = DialogResult.Cancel

            Return

        Else

            DataTables("出库").RejectChanges() \'取消改变

        End If

 

 

 


这是窗口里 click 事件的,点击后,出现“未将对象引用设置到对象的实例”,求助了,谢谢


--  作者:Bin
--  发布时间:2013/12/27 15:50:00
--  
建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。

--  作者:Bin
--  发布时间:2013/12/27 15:51:00
--  

Select Case e.sender.name

    Case "确认出库"

        \'Dim nms() As String = {"领取单位","名称","规格","出库单价","数量","领取人","出库日期"}

        Dim r As Row = Tables("出库").Current  也是是因为没有当前行,要判断一下当前行是否为空

       if r isnot nothing then

        For Each nm As String  In nms

            If r.isnull(nm) Then

                e.Cancel =True

                messagebox.show(nm & "录入信息不全,请补充完整!")

                Return

            End If

        Dim result1 As DialogResult

        result1 = messagebox.show("选择<是>将保存记录,选择<否>将删除本条记录,选择<取消>继续编辑本条记录","提示",messageboxbuttons.yesnocancel,MessageBoxIcon.Question)

        If result1 = DialogResult.Yes Then

            CurrentTable.Current.save()

            Dim result2 As DialogResult

            result2 = messagebox.show("本条入库已保存,是否再录入一条?","提示",messageboxbuttons.yesno,MessageBoxIcon.Question)

            If result2 = DialogResult.Yes Then

                Tables("出库").AddNew()

            End If           

        Else If result1 = DialogResult.Cancel

            Return

        Else

            DataTables("出库").RejectChanges() \'取消改变

        End If

end if


--  作者:zyys2813
--  发布时间:2013/12/27 16:05:00
--  
可是我已经新增一条(行)了,怎么会没有当前行呢?
--  作者:Bin
--  发布时间:2013/12/27 16:06:00
--  
不要只看3楼,也要注意看2楼的回复.
--  作者:zyys2813
--  发布时间:2013/12/27 16:07:00
--  

我试过了,是

 If r.isnull(nm) Then

这一行


--  作者:Bin
--  发布时间:2013/12/27 16:09:00
--  
那么应该就是我3楼所说的问题了,赶紧去验证一下吧
--  作者:zyys2813
--  发布时间:2013/12/27 16:11:00
--  

按3楼的方法,是不出现错误了,但点“确认出库”也就没反应了。

新增一行为什么不是当前行?


--  作者:Bin
--  发布时间:2013/12/27 16:13:00
--  
上例子,我看看你是怎么做的.
--  作者:Bin
--  发布时间:2013/12/27 16:13:00
--  
同时要记得描述清楚你想实现的需求.