将excel数据导入访问
我的VB.NET应用程序正在使用导入一些Excel表访问
command.CommandText = "SELECT * INTO [MS Access;Database=" & current_db & "].[" & sheet_name & "] FROM [" & sheet_name & "$]"
问题是,如果我有一些在Excel中的绿色错误消息的单元格,他们不会导入访问。 他们实际上是在相同的格式,他们没有一个领先的“但Excel的说法数字格式为文本。
一个简单的办法是简单地在Excel中纠正这个问题,但是用户经常忘记这样做,而且数据被跳过。
我如何强制连接导入指定的列作为数字?
我会这样做
- 在Access中,定义要导入的表结构(称为
YourNewStagingTable
)(不要把它作为你的最终表 – 这完全是你的登台表(我通常只是在这里定义所有的字段为TEXT)。 - 使用
INSERT INTO YourNewStagingTable SELECT Columns FROM SpreadsheetPath
- 在此表上运行所有更正和数据validation
- 将数据从
YourNewStagingTable
移到FinalDataTable
如果仍遇到数据types转换问题,则必须更改文件的ISAM映射。
您也可以通过复制和粘贴将Excel数据导入到MS访问。 也许这可能是一个更好的解决scheme,如果有更less的数据处理。
我不认为有办法告诉ODBC的Excel引擎强制列成数据types。 它只查看前7行,并对该列的dataype做出“智能”决定。 当我进行大规模的迁移时,我让代码将数据“强制”到正确的数据types中,像上面提到的那样做,然后执行insert命令。 但是看起来这总是一个替代scheme。 总之,在进入表格之前,必须按摩你的数据。