把文本文件导入到数据表中不成功怎么办
编号:QA003241
建立日期: 2000年8月2日 最后修改日期:2000年8月2日
所属类别:
BBQ:
操作系统: win98
编程工具: VB6,MS Access97
问题: 主题:关于把文本文件导入到数据表中
我在WIN98用VB6和Access97编程,我想把一个文本文件导入到一个确定字段大小的数据表中,我用以下的方法:
Do While Not EOF(1)
Line Input #1, s
rdData.AddNew
rdData!fields01 = Mid(s,1,4)
rdData!fields02 = Mid(s,5,8)
rdData!fields03 = Mid(s,13,8)
...............
rdData.Update
loop
结果数据导入不成功,但是我把第一行的文本删除后保存,再运行导入却成功了。
我在do loop 循环前连续写了几句 "Line Input #1,s",结果运行到第二句时说“错误'62',输入超出文件尾”。
我有以下问题想请教:
*是不是在文本文件的某些行(这里是第一行)有文件结尾的标记,而我们却看不到?
*能不能跳过一行而不读或直接删除一行文本。
*该文本文件是我从其他数据库用FTP download下来再改成扩展名为.txt的文本文件,上面产生的问题是否和这个有关?
*改动文本文件后保存为"Word6.0文档"、"RTF文档" 和 "文本文档"有什么区别?
*对于把文本文件导入到一个确定字段大小的数据表中,有没有更好的方法?
*是不是有一种方法可以从分隔文本文件将数据读到 ADO 记录集,并使用 ADO 的特性来操作数据?
水平: 刚入门
回答:
由于没有看到你的文本文件,所以不能准确地判断问题。由于这个文件原来可能不是标准的文本文件,其中出现文件结束标记也是有可能的。但我认为你首先应该看看每个字段是否存在中英文混合的问题(参考QA000051 "VB 5提示错误:"输入超出文件尾"")。要跳过一行只需要空读一次就可以了,没有直接删除一行的方法。
"Word6.0文档"、"RTF文档" 和 "文本文档"的格式是完全不同的,你的方法仅能处理文本文档。
其实你的大体思路没有问题,但可能是文件格式比较特殊或一些细节没有处理好,正确的办法是通过调试来解决问题。你应该采用单步跟踪的办法看看每次到底读了些什么内容,Mid函数分割的结果是否正确,从而才能找出真正的原因。
ADO没有提供好的直接将文本文件转换为数据集的特性。
此问题由李海回答。
| |
|
|
| |
|
|