我将Access 2003 DB迁移到Access 2010.没有对任何VBA子例程或函数进行重大更改。
使用导入规范执行ETL任务的几个子例程不起作用。经过一番挖掘后,我注意到v2003中创建的导入规格没有出现在v2010 Saved Imports
菜单中。
我认为他们根本没有延续到2010年,我需要重新制作规格。当我通过Import Text Wizard
执行此操作时,点击了Advanced
- > Specs...
,我注意到在v2003中创建的规范 在那里列出了。但是,这没有任何帮助,因为它们在VBA中引用时不起作用。
有谁知道如何让v2010“识别”在v2003中创建的规格?
答案 0 :(得分:1)
好的,我明白了。
MSysIMEXspecs
系统表中有一列名为SpecType
。此系统表包含对所有已保存导入规范的引用。
在v2003中创建的在v2010中无效的规范都列在此表中,但在此字段中它们的值为2
。我在v2010中为测试创建的新规范在此处的值为1
。
我将v2003规范的值翻转为1
,然后可以从VBA子/函数中引用它们。
修改:从this链接我了解到,在SpecType
表中,1
表示delimited
,2
表示{ {1}}。