MS Access / VB.Net - 如何将Excel工作表数据中的行插入MS Access表?

时间:2012-10-04 07:21:15

标签: sql database vb.net ms-access

我的程序是用VB.NET编写的,我有一个excel表,只有一列,列的类型是Text。现在我想将所有excel表的行添加到MS Access表中。

My Access表有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);
    
  • 执行此查询

但我在此查询中收到错误,有任何建议吗?

1 个答案:

答案 0 :(得分:2)

您可以针对连接运行SQL以直接与Access和Excel交互。例如,使用连接:

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

或Jet

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$] 

或Jet

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