不带格式导出访问查询
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 文件。
比较简单,但我好像做不出来。我想将查询从 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 文件。