Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在与请求的名称或序号对应的集合中找不到项_Excel_Database_Vba_Database Connection_Ado - Fatal编程技术网

Excel 在与请求的名称或序号对应的集合中找不到项

Excel 在与请求的名称或序号对应的集合中找不到项,excel,database,vba,database-connection,ado,Excel,Database,Vba,Database Connection,Ado,下面的代码不适用于此存储过程。它适用于查询和其他存储过程 它不会调试。打印此存储过程的值,并返回错误“在与请求的名称或序号对应的集合中找不到项” 确保存储过程包含在用于访问数据库的用户的安全文件中。为此: 在SSM的安全-->下的用户-->右键单击要访问的用户-->单击属性-->单击安全性选项卡,查看列表并确保其中包含存储过程。如果未单击“搜索”按钮-->检查“特定对象”单选-->单击确定-->单击新弹出窗口上的“对象类型”按钮-->检查存储过程复选框-->单击确定-->确保存储过程已列出,并在

下面的代码不适用于此存储过程。它适用于查询和其他存储过程

它不会调试。打印此存储过程的值,并返回错误“在与请求的名称或序号对应的集合中找不到项”


确保存储过程包含在用于访问数据库的用户的安全文件中。为此:

在SSM的安全-->下的用户-->右键单击要访问的用户-->单击属性-->单击安全性选项卡,查看列表并确保其中包含存储过程。如果未单击“搜索”按钮-->检查“特定对象”单选-->单击确定-->单击新弹出窗口上的“对象类型”按钮-->检查存储过程复选框-->单击确定-->确保存储过程已列出,并在显式选项卡“执行”下的“安全性-->下列出存储过程后立即单击确定-->在“权限”列-->中,找到在“授予人”列下具有“dbo”的权限,选中“授予”复选框,然后单击“确定”


这应该可以解决问题。

确保您的数据集未处于筛选状态。将数据集的筛选器设置为false,然后关闭它,然后使用它。或者最好使用干净的数据集。

您的存储过程中可能有调试选项吗?您可能正在选择某个变量的值作为调试语句。这将产生返回两个表的效果。除非另有说明,否则您的数据集将在第一个数据集上显示

在SSMS中执行此操作,并确保它返回您认为它返回的内容

exec SP_storedprocedure 0
此外,要解决此问题,请生成4个debug.print语句,然后查看哪一个语句会出现问题

考虑到您对@MarkBalhoff关于列计数为零的陈述,另一种可能是您只是忘记了在查询结束时返回结果。你在搭建临时工作台吗

sp中的最后一条(或接近最后一条)语句应为

select * from #temp

类似于在函数中计算正确的值,然后忘记返回它。

y
上添加一个手表并进行一些调试。eror消息可能表示您的记录集没有至少4个字段…当它到达调试行???@MarkBalhoff zero时,y.fields.Count的值是多少。它应该是10…然后我觉得问题出在存储过程中,而不是这段代码。在调试代码时,手表会显示公式或表达式的值。当表达式为true时,也可以将其设置为break。调试-->添加手表这看起来很棒。但是,对于我遇到问题的存储过程,我在“授予者”列中没有看到
dbo
。有什么建议吗?
select * from #temp