以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  根据数据库的记录,来控制按扭。求助!(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26493)

--  作者:独孤九箭
--  发布时间:2012/12/6 11:26:00
--  根据数据库的记录,来控制按扭。求助!(已解决)

要求:在点击窗口中表的不同记录时,窗口中的 删除 按扭可根据相对应的记录显示可用或不可用。我做了一个简单的例子,在这个例子中,是能够实现的.

 

但是在我的程序中,同样的做法,就会报错。已经三天了,原因还是找不到。

我把我的程序也打包上传。窗口在供调用的子窗口中的产品信息。代码段在 控件:“显示_货号” 中的 ValueChanged 中。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:根据记录控制窗口按扭.zip

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:饲料进销存管理系统_201212061118.zip

[此贴子已经被作者于2012-12-7 10:59:52编辑过]

--  作者:独孤九箭
--  发布时间:2012/12/6 11:27:00
--  
而且奇怪的是,虽然报错,但好象代码仍然起作用。
--  作者:狐狸爸爸
--  发布时间:2012/12/6 11:53:00
--  
代码写在哪里? 怎么操作出现错误? 错误提示是什么?
--  作者:独孤九箭
--  发布时间:2012/12/6 12:04:00
--  

这里是两个例子,一个是简单的,不报错,可以正常运行,也能达成设计的要求。

 

另一个是我正在做的,代码在 供调用的子窗口中的“产品信息”窗口。代码段在 控件:“显示_货号” 中的 ValueChanged 中。

 

 

错误代码位置:窗口,产品信息,显示_货号,ValueChanged

System.NullReference Exception: 未将对象引用设置到对象的实例

 在 UserCode.ValueChanged_00983a18(controlEventArgs e)

 

 


--  作者:lin_hailun
--  发布时间:2012/12/6 13:31:00
--  
 你的窗口有一个叫做 显示_货号 的控件,你选中它,然后删除就行了。

 它隐藏在你控件的后面,你看不见,里面写有代码的……

--  作者:独孤九箭
--  发布时间:2012/12/6 13:50:00
--  

您没看懂我的问题啊?俺正是要通 显示_货号 这个控件,来控制按扭是否可用。这里面的这段代码和上面简单例子中的代码逻辑相同,为什么这段代码会报错呢。

 

如果这个问题无法解决,我就只能绕道了。唉。。。

 


--  作者:sunsenfeng
--  发布时间:2012/12/6 14:12:00
--  
回不了系统菜单,看不到代码,帮不了
--  作者:狐狸爸爸
--  发布时间:2012/12/6 14:23:00
--  

问题出在这里:

 

If CurrentTable.Current("有关联") Then
    SC.Enabled=False
Else
    SC.Enabled=True
End If

 

请不要用:CurrentTable,请使用:Tables("产品名录")


--  作者:独孤九箭
--  发布时间:2012/12/6 14:54:00
--  

狐爸,问题不是在这里。我也改过用Tables("产品名录"),问题依然存在。您说的问题只要把当前表设成产品名录就行了。但肯定不是这个问题。

 

我现在正在解决这个问题。我用的方法是这样:

 

在我的系统中重新建一个窗口,首先试验一下最简单的那个例子,发现不报错,也能实行功能。然后,我把原来产品名录窗口中的控件,一个一个在这个新窗口中重建。到现在为止,还没有报错。

 

因此我想问题可能是出在什么地方有冲突,但具体还搞不清楚在那里有冲突。我想单独的这段代码是看不出什么明堂的。等我重新发现有冲突的地方时再向你们汇报,暂时我自己先搞。谢谢啦。

 

 


--  作者:独孤九箭
--  发布时间:2012/12/6 16:18:00
--  

问题找到了! 问题是出在目录树的代码。

 

因为选择节点时,会改变数库的指针,并改变绑定的控件 显示_货号 的值,并引发该控件 ValueChanged 事件。从而引发报错。还没想到如何解决。先休息一下。