2011-12-18 204 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

相關問題