【发布时间】:2020-07-14 16:40:40
【问题描述】:
我正在创建一个自动化流程,用于导出我可以访问 CSV 的 50 个表。我遇到的问题是表格中的一行混有回车符或换行符。当我将导出的 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 脚本成功地将我的 access 数据库中的所有表导出到我想要的文件夹中。现在我需要一些帮助,在数据投入生产之前清理数据。
【问题讨论】:
-
这里没有修剪/替换。很高兴看到您已经尝试过什么。
-
您能否更具体地说明“删除任何字符前面的空格”的含义。如果这是您想要的,那么它会将您的评论变成这样:"toremovethespacesinfrontofanycharacters".
-
您要么必须修改表中的数据,要么导出修复值的查询。
-
我需要帮助来编写此替换或修剪语句。我不确切知道如何编写它或将它放在我上面的 VBA 脚本中。这个有问题的一些值包括:“t”或“ab”或“b 带回车”