Microsoft Access TransferText功能:代码页问题

时间:2010-07-27 14:31:26

标签: ms-access unicode special-characters

我继承了一个巨大的,庞大的MS Access数据库,并被分配来解决其中的问题。问题如下......

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

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

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

运行此导入并查看employees表后,我注意到带有特殊字符的名称被搞砸了。例如,“Müller”成为“M├⌐ller”。我调查了一些在线帮助,发现在TransferText调用中可以包含一个“codepage”参数,所以我把它设置为65001(这显然是unicode的代码页):

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

既然我已经再次运行了导入脚本,我认为没有任何区别,特殊字符仍然是错误的。我已经没事了,所以我希望你们中的一位对如何解决这个问题有一些建议...

3 个答案:

答案 0 :(得分:2)

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

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

哪个代码页选择有效,将您的选择保存为规范并在TransferText命令中使用它,而不提供单独的CodePage参数。

答案 1 :(得分:1)

使用CodePage = 1200(msoEncodingUnicodeLittleEndian)解决了我的问题。

答案 2 :(得分:0)