Ms access 访问VBA |如何用另一个字符串替换字符串的一部分

Ms access 访问VBA |如何用另一个字符串替换字符串的一部分,ms-access,vba,Ms Access,Vba,我试图创建一段代码,用一个词替换另一个词。 示例:将Avenue替换为Ave,将North替换为N。 我使用的是MS Access,我可以使用SQL替换函数,但我想在VBA中使用Access模块执行此操作,以便将该函数附加到其他列 我不知道从哪里开始,所以任何意见都将不胜感激 Guy使用Access的VBA功能: 您也可以使用类似的函数,它允许您在不同的情况下添加您想要更改的值: Public Function strReplace(varValue As Variant) as Variant

我试图创建一段代码,用一个词替换另一个词。 示例:将Avenue替换为Ave,将North替换为N。 我使用的是MS Access,我可以使用SQL替换函数,但我想在VBA中使用Access模块执行此操作,以便将该函数附加到其他列

我不知道从哪里开始,所以任何意见都将不胜感激

Guy

使用Access的VBA功能:


您也可以使用类似的函数,它允许您在不同的情况下添加您想要更改的值:

Public Function strReplace(varValue As Variant) as Variant

    Select Case varValue

        Case "Avenue"
            strReplace = "Ave"

        Case "North"
            strReplace = "N"

        Case Else
            strReplace = varValue

    End Select

End Function
然后,您的SQL将读取如下内容:

SELECT strReplace(Address) As Add FROM Tablename
由于字符串“North”可能是街道名称的开头,例如“Northern Boulevard”,因此街道方向始终位于街道编号和街道名称之间,并与街道编号和街道名称分开

Public Function strReplace(varValue As Variant) as Variant

Select Case varValue

    Case "Avenue"
        strReplace = "Ave"

    Case " North "
        strReplace = " N "

    Case Else
        strReplace = varValue

End Select

End Function

我正在读这篇文章,想补充一些信息,尽管这对于OP来说肯定不再及时了

上面BiggerDon指出了用“N”替换“North”的困难。“Avenue”到“Ave”也存在类似的问题(例如,“Avenue of the Americas”变为“Ave of the Americas”):仍然可以理解,但可能不是OP想要的

replace()函数完全与上下文无关,但地址不是。完整的解决方案需要有额外的逻辑来正确解释上下文,然后根据需要应用replace()


数据库通常包含地址,因此我想指出,应用于美国境内地址的OP问题的一般化版本已由编码准确性支持系统(CASS)解决(幽默!).CASS是一个数据库工具,它接受美国地址并完成或更正它,以符合美国邮政局制定的标准。Wikipedia条目有基本内容,更多信息可从邮局获得:

到目前为止您编写了什么代码?正如我提到的,我可以使用:
DECLARE@Mymessage varchar(100)编写此代码设置@Mymessage='我不知道如何在VBA中执行此操作。'选择替换(@Mymessage,'知道','理解')
再说一遍,我不知道如何在模块中用VBA编写。感谢您的时间。另请参阅我本应更好地解释,假设我有一个列名地址。我只是想替换地址列中的Avenue。您是最聪明的。感谢您宝贵的输入。这是我的解决方案!感谢您在这方面的帮助:我们都必须在我们可以行走之前爬行。公共函数TrmChar(ReplaceChar作为字符串)ReplaceChar=Replace(ReplaceChar,“Avenue”,“Ave”)TrmChar=ReplaceChar结束函数要添加到此答案。1.Case可以接受多个参数:例如Case“Avenue”,“Ave.”2.Case很重要。使用lcase或ucase进行比较
Public Function strReplace(varValue As Variant) as Variant

Select Case varValue

    Case "Avenue"
        strReplace = "Ave"

    Case " North "
        strReplace = " N "

    Case Else
        strReplace = varValue

End Select

End Function