我在Access中有一个宏,用于文件夹中的所有文件重新格式化并将数据导入Access表。对于大多数这些文件,它可以很好地工作,但对于某些文件它不会导入任何东西。我已经调试了这个过程,发现当这些文件被拉入记录集时,我创建了它来保存它们,因为我重新格式化每个角色都会被颠倒过来" L":
这不在文件中,我无法在任何其他视图中看到它。如果我在变量上设置监视并用该字符串填充它,则将其解释为空格。如果我在Excel或记事本中打开它们,这些文件在文件中也不可见......
知道造成这种情况的原因是什么?
答案 0 :(得分:2)
您尝试导入的CSV文件显然已使用Unicode编码保存(特别是UTF16-LE),Access正在尝试读取它们,就好像它们被编码为" ANSI" (Windows-1252),所以
ÿþ
,
如果您尝试导入没有导入规范的CSV文件,则会发生这种情况,因为在这种情况下,Access将会猜测"在文件的结构,并假设像
,
,"
(或许{none}
)解决方案是创建一个已保存的导入规范,并将其名称作为执行导入的DoCmd.TransferText
方法的第二个参数。有关创建已保存的导入规范的详细信息,请参阅我的其他答案here。