2011-12-18 241 views
34

我想创建一段代码,用另一个字代替一个字。 示例:用Ave替换Avenue,并用N替换North。 我正在使用MS Access,我可以使用SQL REPLACE Function但我想在VBA中使用Access模块​​执行此操作,以便我可以将该函数附加到其他列。访问VBA |如何用另一个字符串替换字符串的部分

我不知道从哪里开始,所以任何输入将不胜感激。

盖伊

+2

您目前编写了哪些代码? – 2011-12-18 06:35:08

+0

正如我所提到的,我可以这样写: 'DECLARE @Mymessage varchar(100) SET @Mymessage ='我不知道如何在VBA中做到这一点。 ' SELECT REPLACE(@Mymessage,'know','understand')' 同样,我不确定如何在VBA中将它写入模块中。 谢谢你的时间。 – Asynchronous 2011-12-18 06:41:32

+0

另请参阅http://stackoverflow.com/questions/8571192/access-vba-to-trim-space-around-a-specific-character-or-wordss-in-a-column/8571442#8571442 – Fionnuala 2011-12-21 20:58:29

回答

54

使用访问的VBA函数Replace(text, find, replacement)

Dim result As String 

result = Replace("Some sentence containing Avenue in it.", "Avenue", "Ave") 
+0

我应该有说得更好,说我有一个专栏名称地址。我只是试图在地址栏中替换Avenue。你是最聪明的!感谢您的宝贵意见。 – Asynchronous 2011-12-18 06:44:19

+0

在这种情况下,在TSQL中执行 – 2011-12-18 06:51:17

+0

这是我的解决方案! 感谢您对我的帮助:我们都必须爬行才能走路。 公共职能TrmChar(ReplaceChar作为字符串) ReplaceChar =替换(ReplaceChar, “大道”, “大道”) TrmChar = ReplaceChar 端功能 – Asynchronous 2011-12-18 07:16:17

1

你可以使用类似这样的功能也将让你在不同情况下添加,你想改变的值:

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 
+0

要添加到这个答案。 1.案例可以接受多个参数:例如CASE“大道”,“大道” 2.案件事宜。与你的比较使用lcase或ucase – ray 2011-12-19 00:55:59

1

由于字符串“North”可能是街道名称的开始,例如, “北大道”的街道方向始终位于街道号码和街道名称之间,并与街道号码和街道名称分开。

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 
2

我正在阅读此主题并希望添加信息,即使对OP肯定不再及时。

BiggerDon上面指出了死记硬背取代“北”与“N”的困难。 “大道”到“大道”存在类似的问题(例如“美洲大道”变成“美洲大道”:仍然可以理解,但可能不是OP想要的东西。

replace()函数完全上下文无关,但地址不是,完整的解决方案需要额外的逻辑来正确解释上下文,然后根据需要应用replace()。编码精度支持系统(CASS)解决了适用于美国境内地址的OP问题的一般版本CASS是一种数据库工具,它接受美国地址并完成或纠正它以符合标准由美国邮政局设置。维基百科条目https://en.wikipedia.org/wiki/Postal_address_verification具有基础知识,更多信息可在邮局获得:https://ribbs.usps.gov/index.cfm?page=address_info_systems

相关问题