访问数据库 - 导出到.CSV输出代码而不是文本

时间:2017-01-31 20:24:32

标签: vba csv ms-access

我一直在运行一个简单的数据库,它重新格式化Excel数据,并将其输出到.csv文件,以便导入我们的会计软件。对查询进行了一些小的调整,现在.csv文件具有无法使用的数据格式。它似乎是某种代码而不是简单的文本。我根本无法弄清楚发生了什么变化。

我在主窗体上使用此VBA字符串:

Private Sub COGenerate_Click()
DoCmd.TransferText acExportDelim, _
TableName:="07 CO Material Output Format", FileName:="G:\pathname\File.CSV"
End Sub

这是引用查询的SQL格式:

SELECT [Forms]![Main]![JobNumber] AS Job, [Forms]![Main]![CONumber] AS COName, Left([F10],2) AS CCLetter, Mid([F10],3,5) AS CCNumber, "" AS [Empty 1], "" AS [Empty 2], [Forms]![Main]![COName] AS CODescrip, [Cost Elements].[Type Code], "" AS [Empty 3], "" AS [Empty 4], "1" AS One, "" AS [Empty 5], IIf([F10]='CM01701' Or [F10]='CM01702' Or [F10]='CM01703' Or [F10]='dm00100' Or [F10]='dm00101' Or [F10]='dm00102',[sum of MatUnit],1) AS Units, [02 Material Pivot].[Per Unit Cost], [Units]*[Per Unit Cost] AS Total
FROM [02 Material Pivot] INNER JOIN [Cost Elements] ON [02 Material Pivot].F10 = [Cost Elements].[Cost Code];

在输出中,先前输出没有问题的表单输入框现在看起来像这样:

框中的“ABC”在.csv中显示为“41 00 42 00 43 00”。但是,在Access中,查询看起来合适。

感谢任何帮助!

谢谢!

2 个答案:

答案 0 :(得分:1)

我运行了代码,但没有看到任何问题。它成功导出了我的数据,所以我猜在表格中应该有你的数据。我建议手动执行导出过程,因为ACCESS UI将为您提供更多的流程可见性。您可以保存导出并稍后单击执行此操作,因此无需修复代码。

还有很多选项来控制出口。使用导出文本文件。当您看到提议的文件名和扩展名(txt)手动将txt更改为csv时。它会工作。进入下一步后,单击ADVANCED按钮以控制所有格式和字符转换等。

很难看出确切的问题是什么,因为我们无法访问您的表及其数据,但这应该适合您。

答案 1 :(得分:0)

所以我从头开始重新创建了整个数据库,认为某些地方有些奇怪的格式。但是我仍然在导出中获取Unicode数据。我去了一个类似的数据库,我尝试了一个类似的导出过程,没有问题。

2之间的主要区别似乎是尝试从Union Query导出而不是常规查询。尽管SQL代码是相同的,但工会仍然有效。为了使这个在新数据库中工作,我做了一个冗余的联合查询,它有两次相同的SQL代码。输出与只有一个输出相同,导出工作正常。

非常奇怪,非常令人沮丧,但它现在正在运作!