Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

多文件选择后,如何继续操作

花熊2000  发表于:2009-02-15 18:40:24  
复制

一、原因描述
因单位业务需要,需要将文本格式文件导入到Access表中。单独来说,该文本格式内容固定,在设置好导入规则后,即可通过DoCmd.TransferText实现。但实际上却有以下情况:
1、数据源文件后缀名并不是.txt,而TransferText语句要求导入文件的文件名后缀必须为txt,并且要有绝对的路径。
2、需要导入的文本文件可能为多个文件。
实际上以上两个情况对于自己来说不是问题,自己完全可以先用类似庖丁解牛的合并软件先将多文件进行合并,并更名为txt后缀的文件,然后导入即可。但此程序面向的是基层单位,使用人员计算机操作水平参差不齐,因此在数据导入之前,首先必须实现多文件选择,获得已选择多文件的路径之后,再进行处理,导入,有点像从Access中实现文件合并并导入的过程。
二、我目前的做法:
因为自己是初学+自学,没经验,没示例,一时只找到选择单个文件的代码,实现的过程是这样的。
1、建立一个文本框,名称为File1,作为显示文件路径及临时储存选择文件的路径
2、利用Me.File1 = dlgGetFile(, "*.*")获得要导入的一个文件路径
3、使用FileCopy Me.File1, "c:\92018.txt"  `复制要导入的文件到指定位置,并更改为指定文件名92018.txt,目的是为了TransferText需要(导入的文件必须是txt后缀)
4、使用DoCmd.TransferText , "92018 导入规格", 92018, "c:\92018.txt" 导入数据
以上仅能实现单个文件导入,对于一次同时导入多文件却无能为力,所以我用了个笨办法,即同时建立5个文件对话框(当然建10个、100个也行,太麻烦,自己都觉得丢人)
 
还好FileCopy会自动覆盖已存在同名文件,TransferText导入时也可以实现累加导入,虽然此方法笨了点,却也实现了多文件的导入(高手别笑话我,我这可是无师自通,憋了很多天自己悟出来的)。
可是,这样做,太丢人了。首先一看就不是专业的,一个文件选一次,那要是有100个还不得累死。其次是FileCopy对本程序很好用,但好像却是office中沙盒模式中禁止使用的函数,我真怕哪天Microsoft把这个函数彻底取消了,那我就玩完了,如何向领导交代。
三、如今得到多文件选择代码了,不会操作
上了Access软件网,终于找到一直未找到的多文件选择代码示例,很高兴,然后很痛苦。多文件是选择上了,那下面我该如何使用TransferText进行导入?看来多文件就涉及到数组了,虽然本人对数组略知一二,但实际应用,一点不会。
希望高人给与指点!!!!十分感谢!!!

 

Top
ACMAIN.CHM 发表于:2009-02-15 19:33:50
方法一: 在ISAM的注册表中,把 .in 加到 txt 的键中。 你可以在注册表中搜一下local machine 下的 ISAM
方法二, 不用ACCESS的transferTXT,直接用 VB语句 OPEN, INPUT, LINE iNPUT, CLOSE来操作 文件,然后逐行INSERT到表中。

 



总记录:1篇  页次:1/1 9 1 :