我正在寻找访问查询来替换第一次出现的“。” 在一个字符串中。
Example:
A.xcvb.NS
.sdfg.FX
O/P:
A-xcvb.NS
-sdfg.FX
让我知道这在访问查询中是否可行。
我正在寻找访问查询来替换第一次出现的“。” 在一个字符串中。
Example:
A.xcvb.NS
.sdfg.FX
O/P:
A-xcvb.NS
-sdfg.FX
让我知道这在访问查询中是否可行。
在 Microsoft Access 中,Replace 函数将字符串中的一系列字符替换为另一组字符(多次)。
句法
Replace 函数的语法是:
Replace ( string1, find, replacement, [start, [count, [compare]]] ) string1 是用另一组字符替换一个字符序列的字符串。
find 是要在 string1 中搜索的字符串。
替换将替换 string1 中的 find。
开始是可选的。这是 string1 中开始搜索的位置。如果省略此参数,则 Replace 函数将从位置 1 开始搜索。
计数是可选的。这是要替换的出现次数。如果省略此参数,Replace 函数会将所有出现的 find 替换为替换。
使用内置的 VBAReplace
函数替换所有实例
UPDATE tbl
SET fld = Replace(fld,'.','')
要仅替换第一个实例,您将需要一个自定义函数而不是上述Replace
函数
Public Function ReplaceFirstInstance(str As String, strFind As String, strReplace As String) As String
Dim pos As Long
pos = InStr(str, strFind)
If pos > 0 Then
Mid(str, pos, 1) = strReplace
End If
ReplaceFirstInstance = str
End Function
E Mett 的解决方案对我不起作用......
Public Function ReplaceFirstInstance(str As String, strFind As String, strReplace As String) As String
Dim pos As Long
pos = InStr(str, strFind)
If pos > 0 Then
ReplaceFirstInstance = Left(str, pos - 1) & strReplace & Mid(str, pos + Len(strFind))
'Mid(str, pos, 1) = strReplace
Else
ReplaceFirstInstance = str
End If
End Function