将MS Access VBA中的表中的单个列写入.txt文件

时间:2014-01-02 22:39:14

标签: ms-access ms-access-2007 access-vba

这是我第一次在这里发帖提问,但我几乎总是从搜索这个网站得到很好的答案。我试图找出是否有更好的方法来加快这个过程我在Access中写一个表列.txt文件。这是我的代码,它有效,但它的速度很慢。写大约7000件物品需要大约45秒。

lsFileName2 = "E:\DOI_Inventory2\SyncData\EquipUser.txt"
LiFileNumb = FreeFile

SysCmd acSysCmdSetStatus, "Updating User Equipment List"

Open lsFileName2 For Output As LiFileNumb
    With rst
        Do While Not .EOF
            Write #LiFileNumb, ![EqUserFile]
            .MoveNext
        Loop
    End With

dbs.Close
Close LiFileNumb

我对IT领域相当新,所以任何帮助都将不胜感激。感谢

只需添加注释,实际查询就可以了。我已经检查过了,而且速度非常快。

1 个答案:

答案 0 :(得分:1)

创建查询,使用名称保存,然后使用TransferText将查询的数据导出到文本文件中。

假设你有一个名为 qryExportMe SELECT查询,它会正确返回你的表的列数据......

SELECT EqUserFile
FROM YourTable;

...请参阅此TransferText示例,并根据您的需求进行调整。

DoCmd.TransferText TransferType:=acExportDelim, _
    Tablename:="qryExportMe", _
    FileName:="E:\DOI_Inventory2\SyncData\EquipUser.txt", _
    HasFieldNames:=True

检查该链接页面或Access内置帮助系统中的TransferText选项。

请注意,您无需包含选项名称。我添加了它们以帮助您跟踪哪个是哪个。

如果这种方法充分加快了您的导出操作,我认为这将是因为Access将任务作为单个基于集的文件写入处理。你的记录集方法需要访问一次处理一行...而这种方法被称为RBAR(划线痛苦行)的一个原因是因为它们通常很慢。