使用 vba-MS Access 将查询结果导出到文本文件

问题描述 投票:0回答:3

我在 MS Access 2010 中有一个表,我想将查询结果导出到文本文件中(用户指定了一个路径,这个文本文件应该保存在这个路径中)

这是我的查询:

SELECT Name FROM MyTable

我想将每个名字放在文本文件的单独行中。我怎样才能在VBA中做到这一点?

vba ms-access ms-access-2010
3个回答
9
投票

在这种特殊情况下,最直接的方法是这样的:

Sub ExportToText()
Dim rst As DAO.Recordset
Open "C:\__tmp\names.txt" For Output As #1
Set rst = CurrentDb.OpenRecordset("SELECT [Name] FROM MyTable", dbOpenSnapshot)
Do While Not rst.EOF
    Print #1, rst!Name
    rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Close #1
End Sub

2
投票

您可以使用 DoCmd.TransferText 方法来完成此操作。喜欢:

DoCmd.TransferText acExportDelim,"mySpecification","myView","C:\DATA\myfile.csv",True

首先,您手动执行一次,然后保存规范(您可以在其中决定导出哪些列、类型等)。

MyView 是您创建为“SELECT Name FROM myTable”的视图


0
投票

30-40 年前,当 MS Access 2.0 版本时,我是 MS Access 的专家,我确信我使用了没有导出规范的 DoCmd.TransferText,并且使用在代码中动态构造的 SQL 来导出选定的结果,但是最新版本的Access 似乎需要预先保存的导出规范,该规范不允许代码动态选择要导出的记录。 谷歌搜索似乎仍然提供了我会使用的解决方案,例如 将 qQuery 调暗为 DAO.QueryDef 将 sSQL 变暗为字符串

Set qQuery = CurrentDb.CreateQueryDef(TMP_EXPORT_QUERYDEF)

sSQL = "Select * from [Export Stock Easy Formated Price Data] where [Date] = " & (format some date)
qQuery.SQL = sSQL

DoCmd.TransferText acExportQuery, , "ExportQuery", "d:\temp\file1.txt"

但它不起作用,因为它现在需要导出规范,所以有些事情发生了变化。

找不到当前的解决方案,所以有人可以告诉我现在如何动态导出选定的结果

Access 仍然是一款出色的产品,但与 Microsoft 的其他产品一样,尤其是 Word,该产品过于智能,不利于其自身的利益。

© www.soinside.com 2019 - 2024. All rights reserved.