vb代码对象关闭

帮忙看看这段代码,学着弄得,早另一个程序里面可以运行,换一个为什么一直在RST.Update处报错,对象关闭不允许操作??PrivateSubCommand2_Click... 帮忙看看这段代码,学着弄得,早另一个程序里面可以运行,换一个为什么一直在 RST.Update处报错,对象关闭不允许操作??
Private Sub Command2_Click() '修改记录
If MsgBox("确定要修改吗?", vbYesNo + vbQuestion + vbDefaultButton2, "确认") = vbYes Then
If Text1.Text = "" Or Text2.Text = "" Or Combo1.Text = "" Then
MsgBox "不能为空!", vbInformation, "提示"
Exit Sub '为空则退出
End If
Call SJK(CNN)
strSQL = "update userinfo set user='" & Text1.Text & "'and password='" & Text2.Text & "'and qx='" & Combo1.Text & "'where user='" & ary(0) & "'and password='" & ary(1) & "'and qx='" & ary(2) & "'"
RST.Open strSQL, CNN, 1, 3
Set RST = Nothing
RST.Update
RST.Close
CNN.Close
Call 全部显示数据

End If
End Sub
adodb连接 access 的,或者看看能不能换别的写法?实现修改功能
展开
 我来答
梁山反贼
推荐于2016-02-25 · 超过14用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:52.1万
展开全部

我是不慎行猜是没有宽型连接数据库,或者连接了没有打开。先引用,再如带高图所示,肯定成功

引用:如图

代码如图:

szqaly
2014-07-12 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1526万
展开全部
要注意有些sql 语句不是用来返回记录集的,像update 串应该不返回什么,所以执行update方法就会模轮老出错,因为RST没打开任何桐吵记录集。

执行update串后已经对数据库更新了,不必再多此一举执行Update方法了。
所以执行一些不是查询记录集的操作直接用连接旦升对象的Excute方法更直接。

另外下面几位说,close 要在set nothing 之前。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oaita
2014-07-10 · TA获得超过708个赞
知道小有建树答主
回答量:669
采纳率:100%
帮助的人:805万
展开全部
Private Sub Command2_Click() '修改记录
If MsgBox("确定要修改吗并高?", vbYesNo + vbQuestion + vbDefaultButton2, "确认") = vbYes Then
If Text1.Text = "" Or Text2.Text = "" Or Combo1.Text = "" Then
MsgBox "绝橘尺不能为空!", vbInformation, "提示"
Exit Sub '为空伍竖则退出
End If
Call SJK(CNN)
strSQL = "update userinfo set user='" & Text1.Text & "'and password='" & Text2.Text & "'and qx='" & Combo1.Text & "'where user='" & ary(0) & "'and password='" & ary(1) & "'and qx='" & ary(2) & "'"
'RST.Open strSQL, CNN, 1, 3
CNN.execute strsql ''即可。
CNN.Close
Call 全部显示数据

End If
End Sub
追问
按你说的做的,修改的数据存不进去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZHMINGEN
2014-07-12 · TA获得超过1735个赞
知道大有可为答主
回答量:3149
采纳率:68%
帮助的人:1248万
展开全部
RST.Open strSQL, CNN, 1, 3 '这里你打开了RST记录集对象
Set RST = Nothing '这里你又从内存清除了RST记录集对象含毁
RST.Update '这里更新记录集肯定出错
RST.Close
CNN.Close
修改如下:

RST.Open strSQL, CNN, 1, 3
RST.Update
RST.Close
Set RST = Nothing '在操作完冲陵成后才能从内存清除记录集对散老戚象!!!!
CNN.Close
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanyue61
2014-07-11
知道答主
回答量:2
采纳率:0%
帮助的人:2670
展开全部
RST.CLOSE
Set RST = Nothing
CNN.CLOSE
SET CNN=Nothing

这是正确的写法,先关闭培帆,再释放,而且要放到最后面

不过你这个直配空雹接用SQL语句来更新的话就没必要用到RST
直接亏樱
CNN.Execute strSql
CNN.CLOSE
SET CNN=Nothing
就可以了
追问
修改完值变成-1了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式