Ms access MSAccess-删除麻烦字符的更有效方法?

Ms access MSAccess-删除麻烦字符的更有效方法?,ms-access,vba,Ms Access,Vba,我需要删除/替换导入表中的一些麻烦字符。以下是我目前的做法;2万张唱片罚款 我猜有比单步遍历每条记录并执行替换更好的方法来完成: Set rs = db.OpenRecordset("TblMatch") Do While Not rs.EOF strDesc = Replace(Nz(rs!DESC), Chr(39), Chr(39) & Chr(39)) strDesc = Replace(Nz(rs!DESC), Chr(34),

我需要删除/替换导入表中的一些麻烦字符。以下是我目前的做法;2万张唱片罚款

我猜有比单步遍历每条记录并执行替换更好的方法来完成:

    Set rs = db.OpenRecordset("TblMatch")
    Do While Not rs.EOF
        strDesc = Replace(Nz(rs!DESC), Chr(39), Chr(39) & Chr(39))
        strDesc = Replace(Nz(rs!DESC), Chr(34), "")
        strDesc = Replace(Nz(rs!Validated_DESC), Chr(39), Chr(39) & Chr(39))
        strDesc = Replace(Nz(rs!Validated_DESC), Chr(34), "")
        rs.MoveNext
    Loop
下面的方法会更有效吗

    db.Execute "UPDATE TblMatch SET TblMatch.Desc = Replace([Desc],Chr(39),Chr(39) & Chr(39));"
有什么建议或建议吗


谢谢大家!

执行SQL语句几乎总是比使用VBA在记录集中迭代和修改单个记录的内容要快

因此,您可以使用以下SQL
update
语句执行代码操作:

更新
TBL匹配t
设置
t、 描述=替换(替换(t.desc,“,”,“,”,“,”),
t、 已验证描述=替换(替换(t.validated描述,“”,“”,“”,“”)
哪里
t、 描述类“*[””“]*”或t.validated_描述类“*[””“]*”

但是,由于您将字符替换为自身的副本(
'
替换为
'
),您需要小心,不要在数据集上多次运行上述语句。

执行SQL语句几乎总是比使用VBA迭代和修改记录集中单个记录的内容更快

因此,您可以使用以下SQL
update
语句执行代码操作:

更新
TBL匹配t
设置
t、 描述=替换(替换(t.desc,“,”,“,”,“,”),
t、 已验证描述=替换(替换(t.validated描述,“”,“”,“”,“”)
哪里
t、 描述类“*[””“]*”或t.validated_描述类“*[””“]*”

尽管如此,由于您将字符替换为自身的副本(
'
替换为
'
),因此您需要小心,不要在数据集上多次运行上述操作。

您可以轻松测试以找出哪种方法更好,尽管我猜使用查询会更快

也就是说,在Excel中执行它-它将以比你眨眼的速度咀嚼20k行。您可以使用一点VBA导入/导出图纸


使用REPLACE和SEARCH函数,例如
=IF(SEARCH(CHAR(23),A1)>0,REPLACE(A1,SEARCH(CHAR(23),A1),1,“”),A1)
您可以很容易地测试哪种方法更好,尽管我猜使用查询会更快

也就是说,在Excel中执行它-它将以比你眨眼的速度咀嚼20k行。您可以使用一点VBA导入/导出图纸


使用替换和搜索功能,例如
=IF(SEARCH(CHAR(23),A1)>0,REPLACE(A1,SEARCH(CHAR(23),A1),1,“”),A1)

您能解释一下为什么字符很麻烦吗?也许您可以修复使用此数据的代码中的错误,而不是更改数据以避免错误?您可以解释为什么字符很麻烦吗?也许您可以修复使用此数据的代码中的一个错误,而不是更改数据以避免错误?是的,我可以在XLS中这样做,但这是为了让几乎没有XLS技能的新手用户在按钮下运行,每天运行很多次。@MarkPelletier,这就是VBA;在后台运行,用户永远不需要知道。是的,我可以在XLS中运行,但这意味着只有很少或没有XLS技能的新手用户可以在按钮下运行,每天运行很多次。@MarkPelletier,VBA;在后台做,用户永远不需要知道。谢谢。非常有用。我没有看到像“[””“]”这样的标准-很有趣。非常欢迎您-方括号中包含一组字符串中的字符:如果找到任何一个这样的字符,将验证标准。谢谢。非常有用。我没有看到像“['”“]”这样的标准-很有趣。非常欢迎您-方括号中包含一组字符串中的字符:如果找到任何一个这样的字符,将验证标准。