excel vba 至少一个参数没有被指定值

Sub 统计1()
'
' 统计1 Macro
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql$, x$
Set cn = New ADODB.Connection
Set sr = New ADODB.Recordset
cn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=yes'; " _
& "data source=" & ThisWorkbook.Path & "\成本项目汇总表.xls"
x = ActiveWorkbook.Worksheets("sheet1").[K1].Value
sql = "select 年月,科室代码,科室名称,成本项目名称,金额 from [sheet1$]"
sql = sql + "where 科室代码 like '" & x & "'"
sql = sql + "group by 年月,科室代码,科室名称,成本项目名称,金额;"

Set rs = cn.Execute(sql)
For i = 1 To rs.fields.Count
Sheet1.Cells(4, i) = rs.fields(i - 1).Name
Next i
Sheet1.[5:300].ClearContents
Sheet1.[a5].CopyFromRecordset rs
cn.Close
Set cn = Nothing
cn.Close
Set cn = Nothing
End Sub
运行至 Set rs = cn.Execute(sql) 时会提示错误:至少一个参数没有被指定值 请指导一下

1、报错原因:在VBA中,使用了函数,且函数的参数指定错误。
2、VBA函数和工作表函数类似,其参数分两类,一类是必须的一类是可选的,前者是不可省略的,如被省略或指定错误,则会报错,提示为“至少一个参数没有被指定值”。
3、解决办法:检查报错相应的代码,补其相应函数所需要的参数。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-06-04
sql = "select 年月,科室代码,科室名称,成本项目名称,金额 from [sheet1$]"
sql = sql + "where 科室代码 like '" & x & "'"
sql = sql + "group by 年月,科室代码,科室名称,成本项目名称,金额;"

改为
sql = "select 年月,科室代码,科室名称,成本项目名称,金额 from [sheet1$]"+“ ”
sql = sql + "where 科室代码 like “ ” & x & “ ”
sql = sql + "group by 年月,科室代码,科室名称,成本项目名称,金额"
试试本回答被提问者采纳
第2个回答  2013-10-15
注意SQL语句中的空格,比如你的[sheet1$]后面好象就少一个空格。
你可以在调试状态下将SQL输出出来,看一下哪个地方出错了。

excel vba 至少一个参数没有被指定值
1、报错原因:在VBA中,使用了函数,且函数的参数指定错误。2、VBA函数和工作表函数类似,其参数分两类,一类是必须的一类是可选的,前者是不可省略的,如被省略或指定错误,则会报错,提示为“至少一个参数没有被指定值”。3、解决办法:检查报错相应的代码,补其相应函数所需要的参数。

...在excel表中查数据时报"至少一个参数没有被指定值"
1、你的数据表中必须有 NEName,Board_Name、Board_Type、Subrack_No、Inventory_Unit_ID、Serial_Number 这些字段;2、Sql = Sql & " FROM [" & CunLiangBook.Sheets(1).Name & "$] " 语句中 $ 号是不是应该去掉?3、你查询的是Excel中的数据,你看看你的这个 CunLiangBook.Sheets(1)....

...vba调用sql筛选出现“至少一个参数没有被指定值”错误,请问我的程序...
回答:MAX, MIN, AVG是数据库保留字段,需要使用的话改成: [MAX], [MIN], [AVG]

excel2003 vba 中至少一个参数未指定值
因为你执行之前已经把rst关闭了 把rst.close 移动到end sub 前 If cx = "" Then Exit Sub SQL = "select * from [二类汇总$] where 线路名称='" & cx & "'"rst.Open SQL, CNN, adOpenKeyset, adLockOptimistic Range("a3").CopyFromRecordset rst SQL = "select * from [三类汇总$] ...

...2里输入汉字就会出现"至少有一个参数没有被指定值",
改成以下就没问题了。Dim mydata As String, SQL As String Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset mydata = ThisWorkbook.Path & "\\db2.mdb"Set cnn = New ADODB.Connection With cnn .Provider = "microsoft.jet.oledb.4.0".Open mydata End With SQL = "update info1 ...

vba数据库使用open函数,运行时提示至少一个参数没有被指定值,已经附
'如果取消对话框则退出 If File = False Then MsgBox "您未选择文件"Exit Sub End If 'excel获取文本数据 Open File For Input As #1 count = 0 Do While Not EOF(1)count = count + 1 Line Input #1, fText Worksheets("Sheet1").Cells(count, 1).Value = fText Loop Close #1 ...

excel vba编程sql select语句报错“至少一个参数没有被指定值”
SQL = "select 单号起始 as xbbh1,单号终止 as xbbh2 from [Sheet1$] where 客户编号=" & khbh 参数不能放在双引号里面 能运行了, 但是看你的代码下面逻辑还是不对的

...rs.execute时报“至少一个参数没有被指定错误”
由于你的连接语句中使用的是:HDR=NO,相当于没有标题的表,而查询语句里你却指定了标题(Where 姓名='张三'),这是矛盾的...把 HDR=NO 改为 HDR=YES 试试吧...

EXCEL VBA中,怎样判定由用户输入的值,不包括在指定的几个值之中?
Sub x()a = InputBox("请您输入一个数值")Dim v As Variant Dim x As String x = "45,46,57,51"v = Split(x, ",")For i = 0 To UBound(v)If a = v(i) Then MsgBox "find"Exit For End If Next End Sub

Excel 如何用公式提取另一单元格数值中没有包含给定数值中数值?_百度...
$B1,",",REPT(" ",200)),(ROW($1:$100)-1)*200+1,200))=TRIM(MID(SUBSTITUTE($A1,",",REPT(" ",200)),(COLUMN($A:$CV)-1)*200+1,200))),ROW($1:$100)^0)=0,ROW($1:$100)),COLUMN(A1))),"")数组公式,需要按组合键(CTRL+SHIFT+回车)完成公式,右拉,下拉。

相似回答