我正在创建一个自动化过程,该过程可以导出50个我可以访问CSV的表。我遇到的问题是表中的一行包含回车符或换行符。当我将导出的CSV作为文本文件打开时,某些行被打乱了。
麻烦的行的数据类型都是文本。我需要在VBA脚本中集成语句的帮助,以删除任何字符前面的空格并删除任何换行符或回车符。
此表中只有一栏给我一些问题。
我尝试了似乎不起作用的Trim&Replace语句。可能是由于未正确编写它们造成的。
Option Compare Database
Option Explicit
Public Sub ExportDatabaseObjects()
On Error GoTo Err_ExportDatabaseObjects
Dim db As Database
Dim td As TableDef
Dim d As Document
Dim c As Container
Dim i As Integer
Dim sExportLocation As String
Set db = CurrentDb()
sExportLocation = "C:\File Path\"
For Each td In db.TableDefs 'Tables
If Left(td.Name, 4) <> "MSys" Then
CurrentDB.execute " UPDATE " & td.Name & " SET yourColumn='" & REPLACE(yourColumn, CHAR(13)+CHAR(10), "") & "' WHERE INSTR(1, yourColumn, CHAR(13)+CHAR(10))>0"
DoCmd.TransferText acExportDelim, , td.Name, sExportLocation & "Table_" & td.Name & ".csv", True
End If
Next td
Set db = Nothing
Set c = Nothing
MsgBox "All database objects have been exported as a csv file to " & sExportLocation, vbInformation
Exit_ExportDatabaseObjects:
Exit Sub
Err_ExportDatabaseObjects:
MsgBox Err.Number & " - " & Err.Description
Resume Exit_ExportDatabaseObjects
End Sub
我的VBA脚本成功将访问数据库中的所有表导出到所需的文件夹中。现在,在数据投入生产之前,我需要一些帮助。
答案 0 :(得分:0)
For Each td In db.TableDefs 'Tables
If Left(td.Name, 4) <> "MSys" Then
CurrentDB.execute " UPDATE " & td.Name & " SET yourColumn='" & REPLACE(yourColumn, CHAR(13)+CHAR(10), "") & "' WHERE INSTR(1, yourColumn, CHAR(13)+CHAR(10))>0"
DoCmd.TransferText acExportDelim, , td.Name, sExportLocation & "Table_" & td.Name & ".csv", True
End If
Next td
这应该有助于您查找和替换不良字符