ms-access - 将 MS Access VBA 中表中的单列写入 .txt 文件

标签 ms-access ms-access-2007 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 领域的新手,因此非常感谢任何帮助。谢谢

补充一下,实际查询没问题。我已经检查过了,速度非常快。

最佳答案

创建一个查询,用一个名字保存它,然后使用TransferText将查询数据导出到您的文本文件。

因此,假设您有一个名为 qryExportMeSELECT 查询,它可以正确返回表的列数据...

SELECT EqUserFile
FROM YourTable;

...请引用此 TransferText 示例并根据您的需要进行调整。

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

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

请注意,您不需要包含选项名称。我添加它们是为了帮助您了解哪个是哪个。

如果这种方法能够充分加快您的导出操作,我认为这是因为 Access 将任务作为单个基于集合的文件写入来处理。您的记录集方法需要 Access 一次处理一行……这种方法被称为 RBAR(逐行痛苦)的原因之一是因为它们通常非常缓慢。

关于ms-access - 将 MS Access VBA 中表中的单列写入 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20893275/

相关文章:

excel - 如何将查询导出到 Excel 而不将备忘录截断为 255 个字符?

ms-access - 根据另一个表单上的值填充报告上的文本框

ms-access - 表单字段更新后更新相关表中的字段

excel - 将单元格范围从一个工作簿复制到另一个工作簿

VBA:将类项添加到类内的集合中

java - 警告 : Looking for usage map at page 1774, 但页面类型在 UCanAccess 中为 1

java - ucanaccess 太慢

class - 一起使用表单和类的 VBA Excel 最佳实践?

sql - 两个选定表或联合查询的查询中的列数不匹配

sql - 嵌套 JOIN 不起作用