急急急!VB运行时错误'3709',连接无法用于些操作

PrivateSubCommand2_Click()Fori=1To4IfTrim(Text1(i).Text)=""ThenMsgBoxLabel1(i).Captio... Private Sub Command2_Click()For i = 1 To 4 If Trim(Text1(i).Text) = "" Then MsgBox Label1(i).Caption & " 不能为空": Exit SubNext i Dim rst As New ADODB.Recordset
If ID = "" Then rst.Open "select * from 金属材料信息, CN, adOpenStatic, adLockOptimistic" rst.AddNew
Else rst.Open "select * from 金属材料信息 where 编号=" & ID, CN, adOpenStatic, adLockOptimistic End If For i = 1 To 8 If Trim(Text1(i).Text) <> "" Then rst(i).Value = Trim(Text1(i).Text) Next irst.UpdateMsgBox "保存成功!"Unload Me
End Sub

求大神帮忙~~!是一个往库里添加信息的功能,录完要添加的信息后就报错了。不知道这语句有没有问题~
补充下
Private Sub Form_Activate()
If ID = "" Then '新建
Text1(1).Text = jsName
Else
Dim rst As New ADODB.Recordset
rst.Open "select * from 金属材料信息 where 编号=" & ID, CN, adOpenStatic, adLockOptimistic
If Not rst.EOF Then
For i = 0 To rst.Fields.Count - 1
If Not IsNull(rst(i)) Then Text1(i).Text = Trim(rst(i))
Next i
End If
End If

End Sub
展开
 我来答
Archlen
2013-06-04 · TA获得超过260个赞
知道小有建树答主
回答量:297
采纳率:100%
帮助的人:157万
展开全部

创建的参数改成1,3;adOpenDynamic, adLockPessimistic

添加和查询不要搞在一起

把else部分取消,addnew和update应该成对出现,

另外建议,recordset对象最好在程序头部就申明,load就创建,程序结束就销毁。使用时候,用过就及时关闭Close。

使用recordset前还可以加一句判断,如果没有关闭,就先关闭。比如事前无论关闭与否都可以加这么一句:

If rst.State <> adStateClosed Then rst.Close


代码修改如下:

If ID = "" Then
If rst.State <> adStateClosed Then rst.Close
rst.Open "select * from 金属材料信息, CN, adOpenDynamic, adLockPessimistic"
 rst.AddNew
 For i = 1 To 8
    If Trim(Text1(i).Text) <> "" Then rst(i).Value = Trim(Text1(i).Text)
 Next i
rst.Update
End If
zcxlhx
2013-06-04 · TA获得超过175个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:175万
展开全部
rst.Open "select * from 金属材料信息 where 编号=" & ID, CN, adOpenStatic, adLockOptimistic
这一句里的CN(连接)没有被创建.
rst.update后要加上rst.close
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大角Bangle
2013-06-04 · TA获得超过116个赞
知道小有建树答主
回答量:84
采纳率:0%
帮助的人:37.4万
展开全部

 原:rst.Open "select * from 金属材料信息, CN, adOpenStatic, adLockOptimistic"
改:rst.Open "select * from 金属材料信息", CN, adOpenStatic, adLockOptimistic 

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Winnip888
2013-06-04 · TA获得超过1996个赞
知道小有建树答主
回答量:676
采纳率:0%
帮助的人:562万
展开全部
这个方面我熟。有无QQ加我396778305我给你远程搞定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
boyzjv
2013-06-04 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:68.6万
展开全部
你给出的代码太少, 建议在 For i = 1 To 4 这行下断点,然后F8 一步一步运行,看看是哪步出的问题,再做判断
追问
补充了下,请问怎么加断点好呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式