以文本方式查看主题

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

--  作者:lovebc299
--  发布时间:2016/5/25 14:54:00
--  未将对象引用设置到对象的实例。
已点按钮,就提示这个,怎么回事,

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



--  作者:大红袍
--  发布时间:2016/5/25 14:57:00
--  

贴出代码。

 

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

 


--  作者:lovebc299
--  发布时间:2016/5/25 15:20:00
--  
Tables("开始生产_table1").AddNew()
Tables("开始生产_table1").Current.DataRow.Load()
Dim aa As Row = Tables("开始生产_table1").current
Dim hh As Long = aa.Index
Dim tj As Long = 0
Dim lrq As Date
lrq = Date.now


Do While tj <= hh-1
    Dim gx1 As Row = Tables("开始生产_table1").Rows(tj)
    
    If gx1.Isnull("工价1") Then
    Else
    Tables("生产排单表").AddNew()
    Tables("生产排单表").Current.DataRow.Load()
    Dim cr As Row = Tables("生产排单表").current
    cr("客户") = gx1("客户")
    cr("产品") = gx1("产品")
    cr("素材型号") = gx1("素材型号")
    cr("数量") = gx1("数量")
    cr("工序") = "工序1"
    Dim filter As String
    Dim cz As DataRow
    filter = " [产品名称] = \'" & gx1("产品") & "\'"
    cz = DataTables("产品列表").find(filter)
    cr("工序时间")= cz("工序1时间")
    cr("换件时间")= cz("换件1时间")
    cr("开始日期") = lrq
    End If
    
    If gx1.Isnull("工价2") Then
    Else
    Tables("生产排单表").AddNew()
    Tables("生产排单表").Current.DataRow.Load()
    Dim cr As Row = Tables("生产排单表").current
    cr("客户") = gx1("客户")
    cr("产品") = gx1("产品")
    cr("素材型号") = gx1("素材型号")
    cr("数量") = gx1("数量")
    cr("工序") = "工序2"
    Dim filter As String
    Dim cz As DataRow
    filter = " [产品名称] = \'" & gx1("产品") & "\'"
    cz = DataTables("产品列表").find(filter)
    cr("工序时间")= cz("工序2时间")
    cr("换件时间")= cz("换件2时间")
    cr("开始日期") = lrq
    
    End If
    If gx1.Isnull("工价3") Then
    Else
    Tables("生产排单表").AddNew()
    Tables("生产排单表").Current.DataRow.Load()
    Dim cr As Row = Tables("生产排单表").current
    cr("客户") = gx1("客户")
    cr("产品") = gx1("产品")
    cr("素材型号") = gx1("素材型号")
    cr("数量") = gx1("数量")
    cr("工序") = "工序3"
    Dim filter As String
    Dim cz As DataRow
    filter = " [产品名称] = \'" & gx1("产品") & "\'"
    cz = DataTables("产品列表").find(filter)
    cr("工序时间")= cz("工序3时间")
    cr("换件时间")= cz("换件3时间")
    cr("开始日期") = lrq
    
    End If


    If gx1.Isnull("工价4") Then
    Else
    Tables("生产排单表").AddNew()
    Tables("生产排单表").Current.DataRow.Load()
    Dim cr As Row = Tables("生产排单表").current
    cr("客户") = gx1("客户")
    cr("产品") = gx1("产品")
    cr("素材型号") = gx1("素材型号")
    cr("数量") = gx1("数量")
    cr("工序") = "工序4"
    Dim filter As String
    Dim cz As DataRow
    filter = " [产品名称] = \'" & gx1("产品") & "\'"
    cz = DataTables("产品列表").find(filter)
    cr("工序时间")= cz("工序4时间")
    cr("换件时间")= cz("换件4时间")
    cr("开始日期") = lrq
    
    End If


    Dim kh As String =e.Form.controls("combobox1").value
    Dim scxh As String = e.Form.controls("combobox2").value
    Dim rq As Date = e.Form.controls("combobox3").value
    Dim cp As String = gx1("产品")
    Dim cc  As String
  cc = "客户 = \'" & kh & "\'and 素材型号 = \'" & scxh & "\' and 日期 = \'" & rq & "\' and 产品 = \'" & cp & "\'  "
    Dim kssc As DataRow
    kssc = DataTables("订单").find(cc)
   kssc("开始生产")= True
    tj=tj+1
Loop

--  作者:lovebc299
--  发布时间:2016/5/25 15:36:00
--  
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.5.13.1
错误所在事件:窗口,开始生产,Button2,Click
详细错误信息:
未将对象引用设置到对象的实例。


--  作者:lovebc299
--  发布时间:2016/5/25 15:43:00
--  
帮忙解决一下吧
--  作者:大红袍
--  发布时间:2016/5/25 17:55:00
--  

1、所有find之后,要加上没有找到的判断,如

 

cz = DataTables("产品列表").find(filter)

If cz Is Nothing Then

    msgbox("没找到")

Else

    cr("工序时间")= cz("工序4时间")

    cr("换件时间")= cz("换件4时间")
    cr("开始日期") = lrq

End If

 

2、学习一下基本的调试方法 http://www.foxtable.com/help/topics/1485.htm

 


--  作者:wangmin2659
--  发布时间:2017/12/15 22:10:00
--  
就在这个find上面纠结了一个小时,怎么调试都出问题

按照大红袍的解决方案,一下就解决了!