将Excel文件导入Access时,有没有办法更改默认数据类型? (顺便说一句,我正在使用Access 2003。)

我知道我有时可以自由地为正在导入的每个列分配任何数据类型,但这只能在我导入非Excel文件时。

编辑:为了清楚起见,我了解导入过程中有一个步骤允许您更改导入列的数据类型。

事实上,这就是我所要求的。出于某种原因 - 也许它总是Excel文件,也许还有其他东西 - 我有时不允许更改数据类型:下拉框显示为灰色,我只需要使用Access假定的任何数据类型。

例如,我刚尝试在Access中导入一个大型Excel文件( 12000+行,~200列),其中列#105(或类似的东西)主要填充数字(代码) : 1 = foo,2 = bar 等),虽然也有一些alpha代码(A = boo,B = far等)。访问假设它是 Number 数据类型(即使在我更改了Excel文件本身中的 Format 值之后),因此给了我这些alpha代码的错误。如果我被允许在导入时更改数据类型,那将为我省去一些麻烦。

我要求Access不会做什么,或者我错过了什么?感谢。

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

有帮助吗?

解决方案

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

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

请告诉我这是否有效。

其他提示

有几种方法可以做到这一点。最直接的方法是将.xls文件转换为Excel中的.csv文件,这样就可以使用“导入文本向导”导入Access,这样可以在导入过程中选择每列的数据类型。

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

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

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

Access允许您在导入过程中指定数据类型。问题是在“追加”处理以下时间,它不会询问导入到数据类型,它会忘记你改变了它。我认为这是MS Access中的一个错误。

Access将执行此操作。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top