我迁移了Access 2003 DB到Access 2010。没有对任何VBA子程序或函数进行重大更改。
我们利用导入规范执行ETL任务的几个子程序不起作用。经过一番探索,我注意到在v2003中创建的导入规范没有出现在v2010 Saved Imports菜单中。
我认为他们根本没有结转到v2010,我需要重新创建规格。当我通过Import Text Wizard执行此操作并单击Advanced -> Specs...时,我注意到在v2003中创建的规范实际上是在那里列出的。但是,这是没有帮助的,因为它们在VBA中引用时不起作用。
有人知道如何使v2010“识别”v2003中创建的规范吗?
发布于 2014-01-22 15:35:29
好吧,我想出来了。
MSysIMEXspecs system表中有一个名为SpecType的列。此系统表包含对所有保存的导入规范的引用。
在v2003中创建的、在v2010中不起作用的规范都列在这个表中,但是它们在这个字段中有2的值。我在v2010中创建的一个新规范仅用于测试,这里的值为1。
我将v2003规范的值转换为1,然后可以从values /函数中引用它们。
编辑:从这链接中学到,在SpecType表中,1表示delimited,2表示fixed。
https://stackoverflow.com/questions/21286388
复制相似问题