将excel数据导入访问

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

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

问题是,如果我有一些在Excel中的绿色错误消息的单元格,他们不会导入访问。 他们实际上是在相同的格式,他们没有一个领先的“但Excel的说法数字格式为文本。

一个简单的办法是简单地在Excel中纠正这个问题,但是用户经常忘记这样做,而且数据被跳过。

我如何强制连接导入指定的列作为数字?

我会这样做

  1. 在Access中,定义要导入的表结构(称为YourNewStagingTable )(不要把它作为你的最终表 – 这完全是你的登台表(我通常只是在这里定义所有的字段为TEXT)。
  2. 使用INSERT INTO YourNewStagingTable SELECT Columns FROM SpreadsheetPath
  3. 在此表上运行所有更正和数据validation
  4. 将数据从YourNewStagingTable移到FinalDataTable

如果仍遇到数据types转换问题,则必须更改文件的ISAM映射。

您也可以通过复制和粘贴将Excel数据导入到MS访问。 也许这可能是一个更好的解决scheme,如果有更less的数据处理。

我不认为有办法告诉ODBC的Excel引擎强制列成数据types。 它只查看前7行,并对该列的dataype做出“智能”决定。 当我进行大规模的迁移时,我让代码将数据“强制”到正确的数据types中,像上面提到的那样做,然后执行insert命令。 但是看起来这总是一个替代scheme。 总之,在进入表格之前,必须按摩你的数据。