Foxtable(狐表)用户栏目专家坐堂 → [求助]未将对象引用设置到对象的实例


  共有6044人关注过本帖树形打印复制链接

主题:[求助]未将对象引用设置到对象的实例

帅哥哟,离线,有人找我吗?
xu3180497
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
[求助]未将对象引用设置到对象的实例  发帖心情 Post By:2013/7/9 15:48:00 [只看该作者]

设计一个添加窗口,绑定到所有者表后,在代码中有句DataTables("表名").Save()或者我使用Tables("表名").Current.Save()

都会提示我:未将对象引用设置到对象的实例。

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130709154735.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/9 15:49:00 [只看该作者]

if Tables("表名").Current isnot Nothing then

    Tables("表名").Current.Save()

End if

 

 

当前行有时是不存在的,例如空表。


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/9 15:50:00 [只看该作者]

Tables("表名").Current.Save()   确保你有当前行,  如果没有的话就会报错了.

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/9 15:51:00 [只看该作者]

你可以先判断一下是否有当前行再保存

if Tables("表名").Current isnot nothing then
    Tables("表名").Current.Save() 
end if

 回到顶部
帅哥哟,离线,有人找我吗?
xu3180497
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/7/9 16:08:00 [只看该作者]

还是不行啊。我觉得不是当前行值是空值的问题。我把问题说明白一点吧。

现在比如我有两张表,一张是主表"设备信息表",另一张是"配件信息表"。现在建了个主窗口,所有者表是"设备信息表",然后在主窗口有个TabControl页签,第一页显示第一张表和新增按钮,第二页显示第二张表和新增按钮,现在问题就是第二张表"配件信息表"新增的时候会报上面那个错,但是第一张表"设备信息表"新增完全没有问题。刚才试了下各位说的改了代码。但是还是会报上面的错误。感觉不是行是空值的原因。

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130709160533.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130709160721.png
图片点击可在新窗口打开查看
按钮单击代码:

Dim txt1 As String = e.Form.Controls("NumericComboBox2").Text
Dim txt2 As String = e.Form.Controls("NumericComboBox3").Text

If (txt1 <> "" AndAlso txt2 <> "") AndAlso CInt(txt1) > CInt(txt2) Then
    MessageBox.Show("最小库存或最大库存输入有误,请核对!")
Else
    Dim tbl As Table = Tables("备品配件表")
    Dim r As Row = tbl.AddNew()
    r("设备编号") = e.Form.Controls("ComboBox1").Text
    r("图号") = e.Form.Controls("TextBox1").Text
    r("名称") = e.Form.Controls("TextBox2").Text
    r("规格") = e.Form.Controls("TextBox3").Text
    r("材质") = e.Form.Controls("TextBox4").Text
    r("数量") = e.Form.Controls("NumericComboBox1").Text
    r("最小库存") = txt1
    r("最大库存") = txt2
    r("单位") = e.Form.Controls("ComboBox2").Text
    r("单重") = e.Form.Controls("NumericComboBox4").Text
    r("备注") = e.Form.Controls("TextBox5").Text
    If tbl.Current IsNot Nothing Then
        tbl.Current.Save()
    End If
End If

If e.Form.Controls("CheckBox1").Checked = False Then
    e.Form.Close()
End If

[此贴子已经被作者于2013-7-9 16:09:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/9 16:08:00 [只看该作者]

纸上不谈兵,做例子发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
xu3180497
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/7/9 17:26:00 [只看该作者]

以下是引用狐狸爸爸在2013-7-9 16:08:00的发言:

纸上不谈兵,做例子发上来测试。

感谢狐狸爸爸的话啊,为此我去做了一个例子发现并没有上面那样的错误现象,正百思不得其解时,正好快下班了,就索性重启了一下项目,发现问题竟然奇迹般的消失了,功能各方面又很正常了,虽然不知道具体原因为何,但好在是暂时解决了。


 回到顶部