VBA访问多个替换

时间:2015-09-28 17:38:18

标签: vba

我有一个带备忘录字段的表大师。这个fileld内容很多全文缩写。全文是另一个表格调用nomemclature。

我想从nomemclature表到具有对应字段的主表进行多次替换。

我对abreviation字段也有一些问题。该领域有许多错误,如空间和其他caractere,我不想替换。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码。在测试过程中使用它。在第一个记录集中,提供要处理的一个字段。在secord记录集中,提供两个字段以进行查找和替换。

Public Sub Test()

    Dim oRSetToProcess As Recordset
    Dim oRSetFindReplace As Recordset

    DoCmd.SetWarnings False

    Set oRSetToProcess = CurrentDb.OpenRecordset("SELECT [MemoField] FROM [tblData];")
    Set oRSetFindReplace = CurrentDb.OpenRecordset("SELECT [Find],[Replace] FROM [tblFindReplace];")

    BulkReplace oRSetToProcess, oRSetFindReplace

    oRSetToProcess.close
    oRSetFindReplace.close

    Set oRSetToProcess = Nothing
    Set oRSetFindReplace = Nothing

    DoCmd.SetWarnings True

End Sub

Public Sub BulkReplace(oRSetToProcess As Recordset, oRSetFindReplace As Recordset)

    Dim sTempString As String

    oRSetToProcess.MoveFirst

    Do Until oRSetToProcess.EOF
        sTempString = oRSetToProcess(0)
        oRSetFindReplace.MoveFirst
        Do Until oRSetFindReplace.EOF
            sTempString = Replace(sTempString, oRSetFindReplace(0), oRSetFindReplace(1))
            oRSetFindReplace.MoveNext
        Loop
        With oRSetToProcess
            .Edit
            .Fields(0) = sTempString
            .Update
            .MoveNext
        End With
    Loop

End Sub