我有一个带备忘录字段的表大师。这个fileld内容很多全文缩写。全文是另一个表格调用nomemclature。
我想从nomemclature表到具有对应字段的主表进行多次替换。
我对abreviation字段也有一些问题。该领域有许多错误,如空间和其他caractere,我不想替换。
我该怎么做?
答案 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