2017-09-06 42 views
1

目前我正在遭遇Excel ADO问题。无法将记录从Excel插入到SharePoint中

这是事情taht 我试图插入一些记录 从“Excel表”到“SharePoint列表”使用ADO连接。 但失败(无法识别SQL语句的Excel表格)

Dim SQL  As String 
Dim CN   As New ADODB.Connection 
Dim OLEDB  As String 
Dim LIST  As String 
Dim SITE  As String 

LIST = "{EE028282-3D7E-4D37-93EE-50FB69C4432C}" 
SITE = "https://asml.sharepoint.com/teams/FFKR_DUV_YS_Installation_and_Relocation/Product" 
OLEDB = "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=0;RetrieveIds=Yes;" & _ 
     "DATABASE=" & SITE & ";" & _ 
     "LIST=" & LIST & ";" 

Set CN = New ADODB.Connection 
CN.Open OLEDB 

    SQL = SQL & "INSERT INTO Schedule_DB (NAME,TYPE_W) " 
    SQL = SQL & "SELECT * " 
    SQL = SQL & "FROM [" & ThisWorkbook.FullName & "].[S_RAW$] " 

    CN.Execute CommandText:=SQL 
CN.Close 

如果我运行它,我得到了错误 - >
Error image

我已经检查误拼写,以及量项目太多了,所以我宁愿将它作为一个SQL语句来处理。
“Excel to Excel”效果不错但“Excel到SharePoint列表”仍然没有任何提示。 请分享您的建议。

回答

0

当你想从你的Excel工作表中读取数据,你需要有一个ADODB.Connection读取权限,然后将数据写入到SharePoint列表,你需要有另一个ADODB.Connection写权限

注意:您不能以这种方式传输整个数据,您可以生成一个包含整个数据的大命令,然后使用它或为每个Excel数据记录生成命令。

关于您的例外,它只是说它无法在SharePoint列表中找到您的工作表名称。


的样本来指导你可以是这样的:

Dim cnnXl As New ADODB.Connection 
Dim rsXl As New ADODB.Recordset  
Dim cnnShP As New ADODB.Connection 

conStrXl = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\yourExcel.xlsx';" & _ 
     "Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;"";" 

commandXl = "SELECT [Field1], [Field2] FROM [Worksheet$$A1:D7] WHERE [Thing1] > 1" 

conStrShP = "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=0;RetrieveIds=Yes;" & _ 
      "DATABASE=yourSite;LIST={yourListCLSID};" 

然后打开cnnXl和运行commandXl和读取数据rsXl
然后打开cnnShP并循环rsXl记录并创建您的commandShP并执行它。

+0

谢谢shA.t,你能解释一下[关于rsXl记录的循环并创建你的commandShP并执行它]的更多细节。我很兴奋,可以有答案! – user8566482

+0

使用[循环遍历一个像这样的记录集]的示例,您可以像插入到Schedule_DB(NAME,TYPE_W)值('name','type')一样创建SQL命令;'然后使用连接执行此命令SharePoint('cnnShP');)。 –