2017-09-06 84 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');)。 –

相關問題