ACC2007下DoCmd.TransferText acImportFixed函数数据导入错位

nanxi0532 2009-12-22 09:52:40
最近做了一个升级项目,将鬼子的ACC97升级到ACC2007遇到了一个很难解决的问题:
其中有一个模块是用DoCmd.TransferText acImportFixed从文本文件中导入数据的。
升级后发现,[ACC97]和[ACC2007]导入的数据不一致。
调查发现不一致的原因是因为导入数据过程中数据导入乱码,如【2007升级】其中【2007】对应的字段【Field1】指定长度是5个字节,但【2007】只有4个字节所以就将【升】子的前半部分作为第五个字节的内容放入了【Field1】中。
ACC97导入后只有【Field1】和后面【升级】对应的数据库字段【Field2】是乱码,其他字段显示正常。
ACC2007导入【Field1】后面的所有字段都乱码了。
请问各位这个问题怎么解决?
好像是ACC2007在处理乱码的时候自己给加上了点东西,导致了数据长度和原来不一致,导致后面的数据全都读错了.
...全文
251 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
郁闷呀~
wwwwb 2009-12-22
  • 打赏
  • 举报
回复
呵呵,没有数据,无法测试,应该是分隔符问题,
在原文件中不能修改,可以生成一个修改后的TXT文件嘛
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
这个好像不行吧,数据是客户提供的,不能随便泄露出去的,呵呵
wwwwb 2009-12-22
  • 打赏
  • 举报
回复
如果可以,将TXT文件
上传B到www.access911.net/csdn
,用WINRAR压缩
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
要是文件内容能改的话,这个问题应该好解决了。
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
不能乱加分隔符呀~这是个升级项目,这个导入文件是另一个系统生成的,不能随便改的。我这也改不了~呵呵~
wwwwb 2009-12-22
  • 打赏
  • 举报
回复
那有可能,加入分隔符试试
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
没有分隔符,acImportFixed是按照字节读入的.将数据填满一个字段再填下一个字段。
wwwwb 2009-12-22
  • 打赏
  • 举报
回复
TXT文件没有分隔符?手工处理一下,加入分隔符,看看结果如何
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
微软改了处理机制真是害死人呀!
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
3 A226750E6-2 DHT カンコク DHT 022 C 091202091120091119091202091120091119 佐賀県   鳥栖市         * E6-2様邸 000 2 C76219 091104091104YQTB
红色区域乱码【119 】是4个字节,但字段是五个字节,所以读到了【佐】的一半,所以发生错位了
wwwwb 2009-12-22
  • 打赏
  • 举报
回复
没有遇到过此问题,贴TXT文件
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
把数据都给修正错了,郁闷
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
是不是2007会自动修正乱码呀!
nanxi0532 2009-12-22
  • 打赏
  • 举报
回复
文本文件
wwwwb 2009-12-22
  • 打赏
  • 举报
回复
txt文件格式是什么
ACMAIN_CHM 2009-12-22
  • 打赏
  • 举报
回复
那你自己提供一个测试用的TXT,没有看到文件很难分析。

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧