这是我第一次在这里发帖提问,但我几乎总是从搜索这个网站得到很好的答案。我试图找出是否有更好的方法来加快这个过程我在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领域相当新,所以任何帮助都将不胜感激。感谢
只需添加注释,实际查询就可以了。我已经检查过了,而且速度非常快。
答案 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(划线痛苦行)的一个原因是因为它们通常很慢。