1

私のプログラムはVB.NETで記述されており、1列のみのExcelシートがあり、列のタイプはテキストです。次に、Excelシートのすべての行をMSAccessテーブルに追加します。

アクセステーブルには5つの列があり、残りのフィールドに静的データを提供する必要があります。テーブル構造では空にできないため、空にすることはできません。それらは必須です。

私のアルゴリズムはこのように機能します

  • ExcelシートデータをDataTableに読み込みます
  • DataTableのすべての行の最後にループします
  • 各セルのテキストと静的情報の一部を追加して、クエリ文字列を作成します

    INSERT into TableName(c1,c2,c3) 
    values 
    (v1,v2,v3),
    (v1,v2,v3),
    (v1,v2,v3),
    (v1,v2,v3)
    ...
    ...
    (n1,n2,n3);
    
  • このクエリを実行します

しかし、私はこのクエリでエラーが発生しました、何か提案はありますか?

4

1 に答える 1

2

接続に対してSQLを実行して、AccessおよびExcelと直接対話できます。たとえば、接続を操作します。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Z:\Test.xlsm;
Extended Properties="Excel 12.0 xml;HDR=Yes;";

またはジェット

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Z:\Test.xls;
Extended Properties="Excel 8.0;HDR=Yes;";

次のSQLを実行できます。

INSERT INTO [;DATABASE=Z:\Docs\Test.accdb].Table1 (ID,Atext) 
SELECT ID, AText FROM [Sheet7$] 

またはジェット

INSERT INTO [;DATABASE=Z:\Docs\Test.mdb].Table1 (ID,Atext) 
SELECT ID, AText FROM [Sheet7$] 
于 2012-10-04T10:10:29.923 に答える