Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
在与请求名称或基数对应的集合中找不到VBA将Excel导出到SQL项_Excel_Vba - Fatal编程技术网

在与请求名称或基数对应的集合中找不到VBA将Excel导出到SQL项

在与请求名称或基数对应的集合中找不到VBA将Excel导出到SQL项,excel,vba,Excel,Vba,我正在尝试将Excel文件自动导出到SQL Server。代码很好(已经过一些人的检查),SQL Server中的表和Excel文件是相同的。(我在SQL Server中导入了一个Excel平面文件,然后删除了所有行,现在我正试图导入到同一个表中) subtestexportsql() Dim cn作为ADODB.connection 将服务器名称设置为字符串 将数据库名称设置为字符串 将表名设置为字符串 将用户ID设置为字符串 将密码设置为字符串 将rs设置为ADODB.recordset 暗

我正在尝试将Excel文件自动导出到SQL Server。代码很好(已经过一些人的检查),SQL Server中的表和Excel文件是相同的。(我在SQL Server中导入了一个Excel平面文件,然后删除了所有行,现在我正试图导入到同一个表中)

subtestexportsql()
Dim cn作为ADODB.connection
将服务器名称设置为字符串
将数据库名称设置为字符串
将表名设置为字符串
将用户ID设置为字符串
将密码设置为字符串
将rs设置为ADODB.recordset
暗排计数器与长排计数器相同
作为整数的Dim nooffield
黯淡的星空如长
暗尾行与长尾行相同
作为整数的Dim ColCounter
Set rs=新的ADODB.recordset
ServerName=“xxx”'在此处输入您的服务器名称
DatabaseName=“xxx”'在此处输入您的数据库名称
TableName=“dbo.albertada_import”'在此处输入您的表名
UserID=“xxx”'在此处输入您的用户ID
“(如果使用windows身份验证,请将ID和密码留空”)
Password=“xxx”'在此处输入您的密码
NoOfFields=331'输入要更新的字段数(例如工作表中的列)
StartRow=2'在工作表中输入行以开始读取记录
EndRow=200'输入工作表中最后一条记录的行
"变化",
将SHTSheetwork设置为工作表
设置shtsheetwork=ActiveWorkbook.Worksheets(“Sheet2”)
'********
Set cn=New ADODB.connection
cn.Open“Driver={sqlserver};Server=“&ServerName&;”;Database=“&DatabaseName&_
";Uid=“&UserID&;”;Pwd=“&Password&;”;"
rs.开放表名,cn,adOpenKeyset,ADLOCK
'EndRow=shtsheetwork.Cells(Rows.Count,1).End(xlUp).Row
对于RowCounter=StartRow到EndRow
艾德纽卢比
对于ColCounter=1到NoOfFields
'出现错误时,请继续下一步
rs(ColCounter-1)=shtsheetwork.Cells(行计数器,ColCounter)
下一个计数器
调试.打印行计数器
下一个计划者
rs.UpdateBatch
“收拾
rs.Close
设置rs=无
cn.Close
设置cn=Nothing
端接头
运行时错误“3265”

在与请求对应的集合中找不到项 名字还是红衣主教


Debug.Print rs.Fields.count
的输出是什么?我实际上不知道VBA。我在internet上找到了这段代码,并且由于以前的错误我做了一些更改,但都是一样的。在用
rs.open打开
打开记录集后,放置行
Debug.Print rs.Fields.count
,并告诉我们您的记录中显示了什么VBA立即窗格(您可能必须通过查看>>立即窗格来打开VBE中的该窗格。该错误表明您的记录集字段计数(该表中的列数)与
NoOfFields
不匹配。就像您试图插入的列数超过表所能容纳的列数一样。脚本仍然有效。但表是否有效?”dbo.Albertada_进口"真的有331列吗?确实列的nb不正确!谢谢
Debug.Print rs.Fields.count
的输出是什么?我实际上不知道VBA。我在internet上找到了这段代码,并且由于以前的错误我做了一些更改,但都是一样的。在用
rs.open
打开记录集后,将行放置在
Debug.Print rs.Fields.Count
并告诉我们在VBA立即窗格中显示了什么(您可能必须通过查看>>立即窗格来打开VBE中的该窗格。错误提示您记录集的字段计数(该表中的列数)与您的
NoOfFields
不匹配。好像您试图插入的列比表中包含的列多。脚本仍然有效。但是表“dbo.albertada_import”真的有331列吗?确实,列的nb不正确!谢谢