VB至少一个参数没有被指定值错误。

DimcnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetdimmarkasstringPublicSubadd_data()... Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
dim mark as string
Public Sub add_data()
sqlstr1 = "INSERT into 表1(ID,波峰值,类别)values ( 'Val(Text3.Text) ', 'Val(Text10.Text)', 'mark')"
cn.Execute sqlstr1
End Sub
每次一调用这个 add_data函数,就在
cn.Execute sqlstr1这一行上提示 至少一个参数没有被指定值错误
展开
 我来答
tf日出
2012-12-18 · TA获得超过1076个赞
知道小有建树答主
回答量:648
采纳率:0%
帮助的人:249万
展开全部
sqlstr1字符串有误,你Val(Text3.Text)是在引号内,执行时会试图把“Val(Text3.Text)”,'Val(Text10.Text)', 'mark'字符串插入表,而实际上我猜你是想把Text3.Text、Text10.Text、mark内的值插入ID。修改如下:
sqlstr1 = "INSERT into 表1(ID,波峰值,类别) values ( " & Val(Text3.Text) & ", " & Val(Text10.Text) & " , '" & mark & "')"

注:MS SQL SERVER的SQL语句中对数值型数据的引用无需用单引号,如果是文本型的则需要加单引号。
更多追问追答
追问
有个问题就是,我的mark变量的值这样 '" & mark & "'就可以写进数据库么?我之前写进去的就是mark这个字符串。还有就是我在调用完那个函数之后,执行下面的语句
rs.CursorLocation = adUseClient
rs.Open "select * from 表1", cn, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = rs
总是错误:连接无法用于执行此操作,在上下文中它可能已经关闭或者无效
追答
对于第一个问题:是。其实你在调试时,直接在执行SQLSTR赋值语句后,看一下SQLSTR的值就知道问题在哪里了。
至于第二个问题,需要查一下,你之前的程序中RS是否已关闭,如果没有关闭,CursorLocation只能读不能写。
crazy0qwer
2012-12-18 · TA获得超过3299个赞
知道大有可为答主
回答量:4020
采纳率:71%
帮助的人:1270万
展开全部
这样试试
sqlstr1 = "INSERT into 表1(ID,波峰值,类别)values ( ' “ &Val(Text3.Text) & " ', ' " & Val(Text10.Text) & " ', 'mark')"
更多追问追答
追问
有个问题就是,我的mark变量的值这样 '" & mark & "'就可以写进数据库么?我之前写进去的就是mark这个字符串。还有就是我在调用完那个函数之后,执行下面的语句
rs.CursorLocation = adUseClient
rs.Open "select * from 表1", cn, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = rs
总是错误:连接无法用于执行此操作,在上下文中它可能已经关闭或者无效
追答
1、变量跟text是一样的写法都是要引号和连接符、
2、错误的原因应该是你没有连接好数据库,检查下你的 cn.open 连接数据库的语句是否有误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式