以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  错误所在事件:库存,CurrentChanged 详细错误信息: 未将对象引用设置到对象的实例。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108181)

--  作者:waiter
--  发布时间:2017/10/17 21:41:00
--  错误所在事件:库存,CurrentChanged 详细错误信息: 未将对象引用设置到对象的实例。
下面代码当“库存”表没有数据但成为Maintable时提示主题错误(只要有1行就不会提示出错),为什么
库存表CurrentChanged事件代码以下:----------------------当数据为空时,又怎会发生CurrentChanged事件?

If  Forms("库存管理").Opened Then \'如果窗口已经打开
    If e.Table.Rows.count > 0 Then       ‘(数据为空时下面代码应该不会执行才对,为什么还错?)
       Dim dr As DataRow = e.Table.Current.DataRow
       Dim wz As Integer = Tables("库存管理_Table1").FindRow(dr)
       If wz >=0 Then
          Tables("库存管理_Table1").Position = wz
       End If
    End If
End If

恳请解惑。

--  作者:有点蓝
--  发布时间:2017/10/17 21:49:00
--  
1、打开命令窗口,然后测试,看命令窗口输出什么内容?
If  Forms("库存管理").Opened Then \'如果窗口已经打开
    If e.Table.Rows.count > 0 Then       ‘(数据为空时下面代码应该不会执行才对,为什么还错?)
Output.Show(e.Table.Current is nothing)
       Dim dr As DataRow = e.Table.Current.DataRow
       Dim wz As Integer = Tables("库存管理_Table1").FindRow(dr)
       If wz >=0 Then
          Tables("库存管理_Table1").Position = wz
       End If
    End If
End If

2、测试这个代码
If  Forms("库存管理").Opened Then \'如果窗口已经打开
    If e.Table.Rows.count > 0 Then       \'(数据为空时下面代码应该不会执行才对,为什么还错?)
       Dim dr As DataRow = e.Table.Current.DataRow
       Dim wz As Integer = Tables("库存管理_Table1").FindRow("_Identify=" & dr("_Identify"))
       If wz >=0 Then
          Tables("库存管理_Table1").Position = wz
       End If
    End If
End If

--  作者:waiter
--  发布时间:2017/10/17 22:08:00
--  
提示: e是private,因此它在此上下文中不可访问,为什么?

e不是代表Tables("库存")?私有什么意思?
[此贴子已经被作者于2017/10/17 22:12:54编辑过]

--  作者:有点蓝
--  发布时间:2017/10/17 22:20:00
--  
e是private的错误重启下项目就可以了。然后重新测试2楼的代码
--  作者:waiter
--  发布时间:2017/10/17 22:31:00
--  
重启项目后,命令窗口测试2楼代码,依旧提示: e是private,因此它在此上下文中不可访问,为什么?


切换到库存表,依旧提示:
错误所在事件:库存,CurrentChanged 详细错误信息: 未将对象引用设置到对象的实例。


说明:只要库存表有一行数据,错误提示就不会出现。
[此贴子已经被作者于2017/10/17 22:38:07编辑过]

--  作者:有点蓝
--  发布时间:2017/10/17 22:41:00
--  
请上传实例测试
--  作者:waiter
--  发布时间:2017/10/17 22:50:00
--  

附件中,在销售表中 CurrentChanged事件代码跟库存表是一样的,只是窗口不同而已,但销售表不提示错误。请解惑!非常感谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:inandout13.table


--  作者:有点蓝
--  发布时间:2017/10/17 22:57:00
--  
项目用户登录密码多少?
--  作者:waiter
--  发布时间:2017/10/17 23:02:00
--  

高水荣,6255548g


--  作者:有点蓝
--  发布时间:2017/10/17 23:11:00
--  
库存管理窗口表的窗口表事件要加上判断

If e.Table.Current IsNot Nothing
    Dim dr As DataRow = e.Table.Current.DataRow
    Dim wz As Integer = Tables("库存").FindRow(dr)
    If wz >=0 Then
        Tables("库存").Position = wz
    End If
End If