2010-07-27 217 views
1

我继承了一个庞大而笨重的MS Access数据库,并且已分配解决该问题。问题如下...Microsoft Access TransferText功能:代码页问题

系统A将其数据导出到管道分隔的.txt文件。这些文件具有正确工作的特殊字符,例如在记事本或Excel中打开此文件时显示的值“Müller”。

接下来,Access DB导入.txt文件并将结果存储在内部的雇员表中。姓氏字段是数据类型“备忘录”。从txt文件到MS Access导入数据的方法如下:

Call DoCmd.TransferText(acImportDelim, _ 
         "tblEmployees", _ 
         "tblEmployees", _ 
         me.txtImportFile, _ 
         True) 

运行此导入和查看员工表我注意到,有特殊字符的名称都搞砸了之后。例如,“Müller”变成“M├”。我调查了一些在线帮助,并发现可以包括在TransferText称之为“代码页”参数,所以我将它设置为65001(这appearantly是对Unicode代码页):

Call DoCmd.TransferText(acImportDelim, _ 
         "tblEmployees", _ 
         "tblEmployees", _ 
         me.txtImportFile, _ 
         True, _ 
         , _ 
         65001) 

现在,我已经跑了再次导入脚本,我没有看到任何区别,特殊字符仍然是错误的。因为我希望你们中的一些人对如何解决这个问题有一些建议......

回答

2

你的TransferText操作的两个版本都使用名为tblEmployees的SpecificationName。该规范中指定了哪些代码页?

尝试手动导入文本文件。从导入文本向导中选择“高级”。然后在代码页列表框中选择Unicode。您可能需要使用不同的代码页选择进行测试,直到找到哪一个正确导入文本。

而且,任何代码页的选择工作,您的选择保存为规范并用它在你的TransferText命令,没有提供单独的代码页参数。

0

使用代码页= 1200(msoEncodingUnicodeLittleEndian)解决了我的情况的问题。