注册 登录
编程论坛 VB6论坛

vb错误提示 对象关闭时不允许操作

镜子君 发布于 2016-01-28 00:24, 2396 次点击
我想用insert into 把text框里的数据传递到数据库里,
private sub command1_click()
adodc1.recordsource=“insert into 表 values('“& text1.text &”','”& text2.text &“')”
adodc1.refresh
end sub
之前把sql和vb绑定了,现在问题就是,我这样运行他会提示对象关闭时不允许操作,我点确定以后又出现实时错误:应用程序定义或对象定义错误。让我选择调试或结束。但是text1和2里的数据却还是添加进了数据库 ,我就想问问,为什么会出现这种情况。
4 回复
#2
镜子君2016-01-28 00:25
今天百度了好久,没头绪啊,教材上关于这方面内容少的可怜
#3
镜子君2016-01-28 21:52
此贴终结,最后还是用了addnew
#4
风吹过b2016-01-29 10:17
adodc1.recordsource=“insert into 表 values('“& text1.text &”','”& text2.text &“')”
adodc1.refresh

adodc1.recordsource 要求返回一个可以向前的 表对象,而你提交的是 插入操作的SQL命令,执行后的结果是没有 表对象 返回的。
在 adodc1 是得到的是一个 NULL 的 表对象 。
所以你 adodc1.refresh 这句刷新时,因为是 NULL表对象 ,所以系统认为对象是不存在的,关闭的。
因为 那条插入数据的 SQL 已执行完成,只是没有结果可供返回,所以 数据是被插入了。

改用 addnew ,这条命令不会要求 返回一个 表对象,所以不会出现 错误。
------------------
一般都不使用 Adodc 控件了,对这个不熟悉了,应该有执行 SQL 的插口,如果是插入、删除 操作,可以直接使用执行SQL的插口进行操作。
#5
xiangyue05102016-01-29 15:18
同意版主的说法。也不推荐使用adodc1
以前也遇到过类似的错误,但是比这个复杂。adodc1可以同时被多组控件绑定,比如datagrid和textbox。但是操作的时候容易报错。
1