繁体   English   中英

当以Excel只读模式运行Sql时,Excel Sql引发参数错误

[英]Excel Sql throws Too few parameters error when Sql run in Excel read only mode

我有一个Excel工作表,其中我通过ODBC将数据从oracle加载到“数据”工作表中。 然后应用excel sql过滤一些数据

注意:我在服务器计算机上工作,因此无法粘贴整个代码。 但是我所说的都是100%正确的。

'Load Data Sheet
Sql = Select * from oracleTable
. . . 
set rs1 = commandData.Execute() 'record set
'Then code to store rs1 values in to Data Sheet...
.
.
'Apply filter in Excel 
query = select col1,col2,col3 from [Data$A1:IV100] where col1='10'
set rs = commandData.Execute() 'record set

在写模式下打开时返回正确的结果。 但是,当我将工作表置于只读模式时,我的用户可以保护工作表的内容。 它可以从oracle加载数据,然后在行执行过滤器excel sql时显示错误。

   set rs = commandData.Execute() ' Error at this line when opened in read only mode

错误:

[Microsoft] [ODBC Excel驱动程序]参数太少。 预期1

是否类似于以只读方式打开excel时打开的Temp目录中的内容,所以在执行excel查询时,是否难于找到正确的表来应用sql?

您没有正确使用.Execute()函数。

不返回行的语法:

commandobject.Execute RecordsAffected, Parameters, Options 

行返回的语法:

Set recordsetobject = commandobject.Execute (RecordsAffected, Parameters, Options) 

以下是用于更深入介绍的链接: http : //www.devguru.com/technologies/ado/quickref/command_execute.html

我本人也经常遇到此错误。 如果您挂断电话,请尝试以下操作:

  1. 打开VBA编辑器
  2. 按Ctrl + G(这将打开立即窗口)
  3. 在将查询分配给变量之后,立即在代码中设置一个断点(在这种情况下, query =
  4. 当代码在您的断点处中断时,在立即窗口中键入?query ,然后按Enter
  5. 这会将SQL语句写入立即窗口
  6. 查看SQL语句是否存在任何错误(缺少引号等)

您也可以尝试将SQL语句从“即时窗口”粘贴到数据库中并运行查询。 有时您的数据库会抛出更具体的错误消息,您可以相应地更正您的VBA代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM