将Excel数据导入访问

时间:2009-10-06 11:25:14

标签: .net excel ms-access

我的VB.NET应用程序正在使用导入一些Excel工作表进入访问

command.CommandText = "SELECT * INTO [MS Access;Database=" & current_db & "].[" & sheet_name & "] FROM [" & sheet_name & "$]"

问题是,如果我在Excel中有一些带有绿色错误消息的单元格,则它们不会在访问中导入。 而且他们实际上采用相同的格式,他们没有领先'但是擅长它的数字格式化为文本。

一个简单的方法就是在excel中简单地纠正这个问题,但通常用户会忘记这样做并跳过数据。

如何强制连接将指定列导入为数字?

3 个答案:

答案 0 :(得分:5)

我会这样做

  1. 在Access中,定义要导入的表结构(称之为YourNewStagingTable)(不要将其作为最终表 - 这纯粹是您的临时表(我通常只在这里将所有字段定义为TEXT) )。
  2. 使用INSERT INTO YourNewStagingTable SELECT Columns FROM SpreadsheetPath
  3. 在此表中运行所有更正和数据验证
  4. 将数据从YourNewStagingTable移至FinalDataTable
  5. 如果您仍然遇到数据类型转换问题,则必须更改该文件的ISAM映射。

答案 1 :(得分:0)

您还可以通过复制和粘贴将Excel数据导入到ms-access。 如果要处理的数据较少,这可能是一个更好的解决方案。

答案 2 :(得分:0)

我认为没有办法告诉ODBC让Excel引擎强制列成为数据类型。它只查看前7行,并对该列的dataype做出“智能”决定。当我进行大规模迁移时,我将代码“强制”为正确的数据类型,如上所述,然后执行insert命令。但看起来this似乎总是另类。简而言之,您必须在将数据放入表格之前对其进行按摩。