TransferText导出到CSV不起作用,但TransferSpreadsheet导出到XLSX工作

时间:2014-11-18 09:48:58

标签: vba ms-access access-vba ms-access-2010

我创建了一个Form,在其中我创建了一个按钮,并通过上下文菜单激活了VBA的代码生成器。 单击该按钮,查询将正确导出为.xlsx:

Option Compare Database

Private Sub Befehl0_Click()

            DoCmd.TransferSpreadsheet acExport, , "queryname", "C:\test\queryname.xlsx", -1

End Sub

但是,当我修改导出时(根据此FAQ):

Option Compare Database

Private Sub Befehl0_Click()

            DoCmd.TransferText acExportDelim, , "queryname", "C:\test\queryname.csv", -1

End Sub

什么都没发生。

我也试过设置出口规格,但这也没有帮助。

这里有什么问题?

1 个答案:

答案 0 :(得分:2)

对此的答案是出现了错误' 3441' "文本文件规范字段分隔符匹配小数分隔符或文本分隔符",仅在尝试在直接窗口中运行它时可见(Ctrl + G)。

显然,当您使用非英语操作系统时,这是分隔符默认设置的问题。

要解决此问题,必须提供出口规格。但是,有两种方法可以创建,其中一种方法是错误的。

导入也是如此,我发现了on the web:

  

"是的,我创建了规范,可通过导入查看   向导,但在MSysIMEXSpecs中没有它的行。"然后呢   似乎您可能没有创建真正的导入规范。

     

在Access 2007及更新版本中,您还可以保存"导入步骤"。这个   与导入规范中的不同。

     

A"保存导入",不会显示在MSysIMEXSpecs中,而是真实的   导入规范应该。

     

确定,导入过程中的步骤,如果单击   "高级"按钮实际创建导入规范。

     

导入过程的最后一步是"保存导入步骤"对话   框,...再次,这是与Import Spec相同的东西。一个   "保存导入/导出"将在以下网址提供:       外部数据 - >导出 - >已保存导出...因此请在此处查看

使用这些知识,它的工作原理是添加导出规范" exportcsv"在上述过程中创建。

        DoCmd.TransferText acExportDelim, "exportcsv", "queryname", "C:\test\queryname.csv", -1