2011-08-25 77 views
1

我需要修改两个CSV文件中的字符串。我正在使用Windows XP。插入记录之间的空白行并输出到CSV

文件名是pi_jobs.csvpi_offices.csv

我需要在每条记录之间有两个空格,然后在最后一条记录之后有两个空行。

这些文件是由基于Access的应用程序生成的,我可以通过SQL语句在输出中创建空行(基本上,查询中的最后一个字段连接两组Chr(10)和Chr(13)字符,给我两个换行符和两个回车符)。

但是,当我将文件输出到CSV时,它将那些回车符和换行符作为记录中的一个单独字段包含在内,因此在字段前面加上逗号,并在该字段引号。

我在下面提供了一个例子。注意第一个和第二个记录之间的差距。有一个逗号和引号在第一个记录的结尾,而第二个记录开始前右引号:

“经认可的医疗助理计划,使有资格接受或AAMA或AMT认证;高中文凭或GED要求;至少三年在医疗或相关商务办公室工作经验;静脉切开术和注射的工作知识。期望:专科学位 “”



”TBP20113105-82792“,” 芝加哥Edgewater的”, “9999999”, “TBP医疗助理”

我已经很小心在这里我的页面格式 - 这正是行间距的样子,这个间距有三条线间隔,但它应该是这样的:

“一个经认可的医疗辅助程序, AAMA或AMT认证;高中文凭或GED r equired;至少三年在医疗或相关商务办公室工作经验;静脉切开术和注射的工作知识。期望:大专“


“TBP20113105-82792”, “芝加哥Edgewater的”, “9999999”, “TBP医疗助理”

回答

1

这里是一个纯粹的接入解决方案

。第1步:到Microsoft脚本运行时库添加数据库中的参考

enter image description here

步骤2:创建一个函数,该函数将打开表格/查询并逐行读取记录并输出到。CSV文件

Function OutputToCsv() 
Dim fs As FileSystemObject 
Dim ts As TextStream 
Dim rs As Recordset 

On Error GoTo lberr 

'use this if you query a single table 
Set rs = CurrentDb.OpenRecordset("Select Column1, Column2, Column3 From NewTable") 

'use this if your query DOES NOT have any parameters 
'Set rs = CurrentDb.OpenRecordset("Select Column1, Column2, Column3 From NewQuery") 

'use this if you use query WITH parameter(s) 
'Dim qdf As QueryDef 
'Set qdf = CurrentDb.QueryDefs("NewQuery") 
'qdf.Parameters("Parameter1") = "" 'set the value for the parameter(s) 
'Set rs = qdf.OpenRecordset 

If (rs.RecordCount = 0) Then Exit Function 

Set fs = New FileSystemObject 
Set ts = fs.CreateTextFile("C:\NewFile.csv", True, False) 'this will overwrite the file each time 

rs.MoveFirst 

Do While Not rs.EOF 
    'Chr(34) is a quotation mark " 
    ts.WriteLine (Chr(34) & rs("Column1") & Chr(34)) 'format your record output 
    'ts.WriteLine (Chr(34) & rs("Column1") & Chr(34) & "," & Chr(34) & rs("Column2") & Chr(34)) 'in case you need to output more than one column 
    ts.WriteBlankLines (2) 'Add as many empty lines as you need 
    rs.MoveNext 
Loop 

ts.Close 

MsgBox "Success!" 

Exit Function 
lberr: 
    MsgBox Err.Description 
End Function 

而且,这是你的输出文件应该如何看起来像:

enter image description here

+0

谢谢 - 有没有在你的语句来指定查询任何方式运行?在你的例子中,你有一行:Set rs = CurrentDb.OpenRecordset(“Select Column1,Column2,Column3 From NewTable”),但我试过在该行中包括(并修改)我的查询SQL,但是我正在编译错误。如果它有帮助,查询名称是“aje-job-output-query”。谢谢! – j1mc

+0

当然,查询也可以使用。我要编辑我的帖子,包括 –

+0

我已更新帖子 –