不带格式导出访问查询

Export Access Query WITHOUT Formatting

比较简单,但我好像做不出来。我想将查询从 access 导出到 .csv(制表符或逗号分隔)。当我通过向导手动执行时,它工作正常。但是当我通过 vba 执行此操作时,它带有完整的破折号格式,看起来像 table 中的边框!

我尝试了两种方法,得到了相同的结果

DoCmd.OutputTo acOutputQuery, "Qry_GRADE", "MS-DOSText(*.txt)",_
 "grade.csv", True, *ExportSpec*, , acExportQualityScreen

我在有或没有 "ExportSpec" 的情况下都使用它,这是我在手动导出时创建的规范。

这是第二种方法:

Dim testSQL As String
Dim qd As DAO.QueryDef

    testSQL = "SELECT * FROM Qry_Grade"
    Set qd = db.CreateQueryDef("tmpExport", testSQL)
    DoCmd.TransferText acExportDelim, , "tmpExport",_
         "C:\Users\Databoe\Documents\KidsTV\grade.csv"
    db.QueryDefs.Delete "tmpExport"

This is a solution 我发现这似乎有些过分了

这就是输出的样子:

您可以看到在 excel 中打开文件时它实际上并没有拆分任何列,并且每隔一行只是一串“-”

直接 excel 文件导出 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, myQueryName, myExportFileName, True 怎么样。

我试过你的方法,但我只在你第一次尝试时得到格式化的文本DoCmd.OutputTo acOutputQuery, "Qry_GRADE", "MS-DOSText(*.txt)",_ "grade.csv", True, *ExportSpec*, , acExportQualityScreen这是预期的,因为它是文本导出而不是 csv。

使用你的第二种方法,我总能得到 excel 兼容的结果。也许你有一个隐藏错误的错误陷阱,第一个 grade.csv 没有被覆盖。为第二种方法使用不同的文件名以防止出现这种情况。

找到第二个陷阱。您没有在第一种方法中指定完整的文件路径,但在第二种方法中。如果 C:\Users\Databoe\Documents\KidsTV 不是您的默认文档路径,您在不同的文件夹中有 2 个 grade.csv,但您可能认为只有一个被覆盖。

我自己 运行 解决了这个问题,并找到了很好的解决方法。它不会另存为 .csv,但您可以另存为逗号分隔的 .txt 文件。

  • 使用“外部数据”选项卡上的导出向导将您的查询导出为不带格式的 .txt 文件。
  • 文件导出后,您会看到一个对话框,询问您是否要保存导出步骤。单击该框并保存导出。
  • 宏向导中有一个名为 "Run Saved Import/Export." Select 的操作,请从下拉菜单中选择您保存的导出。

非常令人沮丧,即使是现在我似乎也无法使 Access 导出一个简单的 csv 文件。我不知道为什么他们认为我需要漂亮的格式。试试这个:打开 Excel,单击“获取数据”、“从数据库”、“从 MicroSoft Access 数据库”。 Select 您希望从中导出的 Access 数据库。 Select 我们要将 table/query 保存为 csv。这将为这个table设置一个link。导入后,将 Excel 文件保存到 csv 文件。