将Excel文件导入Access时更改数据types

将Excel文件导入Access时,有什么方法可以更改默认的数据types吗? (顺便说一下,我正在使用Access 2003)。

我知道我有时可以自由地将任何数据types分配给正在导入的每一列,但是这只能在我导入非Excel文件的时候。

编辑:要清楚,我明白,在导入过程中有一个步骤,您可以更改导入的列的数据types。

事实上,这就是我所问的。 出于某种原因 – 也许它总是Excel文件,也许还有其他的东西 – 我有时不允许改变数据types:下拉框是灰色的,我只需要忍受任何数据types访问假定是正确的。

例如,我刚刚尝试在Access 105列(或类似的东西)中填充大部分数字(代码: 1=foo, 2=bar等),导入大型Excel文件( 12000行,〜200列 ) ),尽pipe这里也有一些alpha代码(A = boo,B = far等)。 Access假定它是一个Number数据types(即使我改变了Excel文件本身的Format值),所以给了我这些alpha代码的错误。 如果我被允许在导入时更改数据types,那就省了一些麻烦。

我是否要求Access不能做的事情,或者我错过了什么? 谢谢。

编辑:下面有两个答案,给有用的build议。 将Excel文件保存为CSV文件,然后导入,效果很好,就像Chris OC说的那样直截了当。 保存导入规范的build议也非常有帮助。 但是,我select了DK的registry设置答案作为“已接受的答案”。 我喜欢它作为一个答案,因为这是一个一次性的步骤 ,可以用来解决我的主要问题(访问错误地分配一个数据types)。 简而言之,这个解决scheme不允许我自己改变数据types,但是它使得Access准确地猜测数据types,所以问题更less。

可能是由Excel Jet驱动程序的默认设置引起的。 检出以下registry项并将其值从默认值8更改为0,意思是“根据所有值猜测列数据types,而不仅仅是前8行”。

 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel] "TypeGuessRows"=dword:00000000 

请告诉这是否工作。

有几种方法可以做到这一点。 最简单的方法是将.xls文件转换为Excel中的.csv文件,这样您就可以使用“导入文本向导”导入到Access中,导入文本向导允许您在导入过程中select每个列的数据types。

这样做的另一个好处是导入一个csv(或文本)文件比导入一个xls文件要快得多。 如果您要多次执行此导入操作,请将导入设置设置保存为导入规范。 (在“导入文本向导”中,单击左下angular的“高级…”button,然后单击“另存为”,并指定一个规范名称以保存刚才所做的更改。)

访问可以做你需要的,但没有直接的方法。 你必须pipe理一些logging集,一个是你的Excel数据,另一个是你最终的Access表。 一旦两个logging集都打开,您可以通过浏览Excel数据并将其添加到Access表中将数据从一个logging集传输到另一个logging集。 在这个阶段,可以根据请求更改数据types。

从CSV文件导入时,您还可以看看schema.ini,您会发现通过这个可以控制导入过程的每个方面。

访问将做到这一点。

在导入过程中,您可以定义每列的数据types。