2017-09-06 170 views
1

現在、私はExcel ADOの問題を抱えています。ExcelからSharePointにレコードを挿入できません

ここには何かがあります 私はいくつかのレコードを挿入しようとしていました 「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

私はすでにミススペルをチェックし、量てきましたアイテムが多すぎるので、私はそれを1つのSQLステートメントとして処理したいと考えています。
"Excel to Excel"はうまくいきますが、 "Excel to SharePoint List"のアイデアはまだありません。 ご意見をお寄せください。

答えて

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

ありがとうございます。[ループオーバーrsXlレコードの詳細を説明してcommandShPを作成して実行してください]私はそこに興奮しています! – user8566482

+0

'insert into Schedule_DB(NAME、TYPE_W)values( 'name'、 'type');のようなSQLコマンドを作成することができる[このようなレコードセットをループする]のサンプルを使用して、 SharePoint( 'cnnShP');)。 –