1

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

我的 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);
    
  • 执行这个查询

但是我在这个查询中遇到了错误,有什么建议吗?

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 回答