以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 未将对象引用设置到对象的实例 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88965) |
-- 作者:46702888 -- 发布时间:2016/8/12 14:47:00 -- 未将对象引用设置到对象的实例 在同一窗口内: 在TextBox1的TextChanged事件中写入: Dim dt As DataTable = DataTables("产品表") MessageBox.Show(1) Dim fdr As DataRow = dt.Find("编号 = \'" & e.Sender.Text & "\'") MessageBox.Show(2) If fdr IsNot Nothing Then MessageBox.Show(3) Tables("订单表").Current("名称") = fdr("名称") Tables("订单表").Current("类型") = fdr("类型") Tables("订单表").Current("规格型号") = fdr("规格型号") End If 然后在Button1的Chick事件中写入: Dim cc As WinForm.TextBox = e.Form.Controls("textbox1") Dim filter As String = "1=1" If cc.Text > "" Then filter &= " and 编号 = \'" & cc.Text & "\'"
Tables("订单表").Filter =filter End If
在TextBox1更改文本时,运行没有出现问题。 但不知为什么,点击Button1之后,总会执行TextBox1的TextChanged事件,然后报错:未将对象引用设置到对象的实例。 调试用MessageBox跟踪,在出现2后就会出错。 不知代码哪里出错,请老师指点! (另外,有两个窗口引用作为主表的订单表,不过这两个窗口不同时出现,AfterClose事件是:close一个后再open另一个,不会引起这个问题吧?) [此贴子已经被作者于2016/8/12 14:47:55编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/8/12 14:51:00 -- 1、你textbox1绑定表列了,你切换行,自然会触发textchanged事件
2、报错是因为 Tables("订单表").Current,筛选以后,可能这个表没有记录了。要判断
If Tables("订单表").Current IsNot Nothing Then
End If |
-- 作者:46702888 -- 发布时间:2016/8/12 15:04:00 -- 是在TextBox1的TextChanged事件中这样写吗?: If Tables("订单表").Current IsNot Nothing Then Dim dt As DataTable = DataTables("产品表") MessageBox.Show(1) Dim fdr As DataRow = dt.Find("编号 = \'" & e.Sender.Text & "\'") MessageBox.Show(2) If fdr IsNot Nothing Then MessageBox.Show(3) Tables("订单表").Current("名称") = fdr("名称") Tables("订单表").Current("类型") = fdr("类型") Tables("订单表").Current("规格型号") = fdr("规格型号") End If End If 还是一样报错(报错后执行的结果都是对的),筛选后订单表里都有记录,每次点Button1都报错。 |
-- 作者:46702888 -- 发布时间:2016/8/12 15:06:00 -- 不好意思,对了,谢谢大红袍老师! |
-- 作者:46702888 -- 发布时间:2016/8/12 15:07:00 -- 非常感谢! |
-- 作者:大红袍 -- 发布时间:2016/8/12 15:07:00 -- 控件不要绑定表列。 |
-- 作者:大红袍 -- 发布时间:2016/8/12 15:08:00 -- 上传实例说明问题 |