【VBA问题】通过SQL查询EXCEL数据,Execute报“至少一个参数没有被指定值”

一、问题描述

    通过SQL查询EXCEL数据是,执行到Execute后,会报错,弹出错误框

【VBA问题】通过SQL查询EXCEL数据,Execute报“至少一个参数没有被指定值”_第1张图片

二、涉及代码

Set conn = CreateObject("adodb.connection")

conn.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

Sql = "select * from [数据源$] where " & title & " = '" & k(i) & "'"

Worksheets.Add after:=Sheets(Sheets.Count)

With ActiveSheet

    .Name = k(i)
    .Range("A2").CopyFromRecordset conn.Execute(Sql)

End With

三、问题解决

    在网上找了很久,也没有找到满意的答案。最后只能通过代码测试,定位问题,最终解决问题。原来,被查找的条件“title”字符串为“A/Test”。中间包含“/”。直接进行查找会报提示的错误。这样一来,问题就简单了。将title的字符串标志为一个整体即可。具体代码如下:

Sql = "select * from [数据源$] where `" & title & "` = '" & k(i) & "'"

    给title加上"`"号即可(esc键下面那个键)。

四、问题总结

    1. SQL条件出现符号的,需要用``符号括起来

    2. 其实,弹出“运行时错误......至少一个参数”时,可以理解为数据源没有这个where条件。

你可能感兴趣的:(【VBA问题】通过SQL查询EXCEL数据,Execute报“至少一个参数没有被指定值”)