2008-09-23 100 views
5

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

我知道我有时可以自由地将任何数据类型分配给正在导入的每一列,但只有当我导入非Excel文件时才可以。

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

事实上,这就是我所问的。出于某种原因 - 也许它总是Excel文件,也许还有别的东西 - 我有时不允许更改数据类型:下拉框是灰色的,我只需要忍受任何Access类型的数据类型。

例如,我只是想在那里访问列#105(或类似的东西)充满了大多都是数字(代码导入大十岁上下的Excel文件(12000+行〜200列):1=foo, 2=bar等),尽管这里也有一些alpha代码(A = boo,B = far等)。 Access假设它是一个Number数据类型(即使我改变了Excel文件本身的Format值),所以给了我这些字母代码的错误。如果我被允许在导入时更改数据类型,它会为我节省一些麻烦。

我要求的东西,Access只是不会做,或者我错过了什么?谢谢。

编辑:下面有两个答案给出有用的建议。将Excel文件保存为CSV文件,然后导入该文件,效果很好,如Chris OC所述那样直接。保存导入规范的建议也非常有用。但是,我选择了DK作为“已接受的答案”的注册表设置答案。我喜欢它作为答案,因为这是一个一次性步骤,可用于解决我的主要问题(Access有错误地分配数据类型)。简而言之,这种解决方案不允许我自己更改数据类型,但它使Access准确地猜测数据类型,从而减少了问题。

回答

2

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

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

请告诉它是否有效。

+0

嗯,它确实在那里工作访问现在更智能地猜测数据类型。但是,我仍然没有权力在导入过程中将数据类型更改为我喜欢的任何内容。 我知道我可能没有别的选择。如果是这样的话,我会接受这个答案。 – user3930756 2008-09-23 17:52:23

-1

访问将执行此操作。

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

3

有几种方法可以做到这一点。最简单的方法是将.xls文件转换为Excel中的.csv文件,以便您可以使用导入文本向导导入到Access中,从而允许您在导入期间选择每个列的数据类型。

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

0

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

0

从CSV文件导入时,你也可以看看schema.ini你会发现,这个你可以控制导入过程的每一个环节。

相关问题