2011-12-18 2 views
34

한 단어를 다른 단어로 바꾸는 코드를 만들려고합니다. 예 : Avenue 및 North를 N으로 대체하십시오. MS Access를 사용하고 있는데 SQL REPLACE 기능을 사용할 수 있지만 Access 모듈을 사용하여 VBA에서이 기능을 다른 열에 연결할 수 있습니다.액세스 VBA | 문자열의 일부를 다른 문자열로 바꾸는 방법

어디에서 시작해야할지 모르겠으므로 입력 사항을 크게 높이 실 것입니다.

가이

+2

지금까지 작성한 코드는 무엇입니까? –

+0

내가 언급했듯이 이것을 쓸 수있다 : 'DECLARE @Mymessage varchar (100) SET @Mymessage = 'VBA에서 어떻게 해야할지 모르겠다. ' SELECT REPLACE (@Mymessage,'know ','understand ')' 이번에도 모듈의 VBA에서이를 작성하는 방법을 잘 모르겠습니다. 시간 내 주셔서 감사합니다. – Asynchronous

+0

참조 http://stackoverflow.com/questions/8571192/access-vba-to-trim-space-around-a-specific-character-or-wordss-in-a-column/8571442#8571442 – Fionnuala

답변

54

를 사용하여 액세스의 VBA 기능 Replace(text, find, replacement) :

Dim result As String 

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

더 나은 설명, 내가 칼럼 이름 주소가있다. 나는 단순히 주소 열의 애비뉴를 대체하려고합니다. 너는 가장 똑똑해! 귀중한 의견을 보내 주셔서 감사합니다. – Asynchronous

+0

그럴 경우 TSQL –

+0

에서 해결하십시오. 내 솔루션은 다음과 같습니다! 도와 줘서 고마워. 우리가 걸을 수 있기 전에 우리 모두 크롤링해야 해. 공공 기능 TrmChar (문자열로 ReplaceChar) ReplaceChar = (ReplaceChar, "도로", "번가") TrmChar = ReplaceChar 최종 기능 – Asynchronous

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 같은 것을 읽을 것

+0

이 응답에 추가를 교체합니다. 사례는 여러 인수를 허용 할 수 있습니다. CASE "Avenue", "Ave." 2. 케이스 문제. 비교할 때 lcase 또는 ucase를 사용하십시오. – ray

1

"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 
2

나는이 스레드를 읽고 있었고 더 이상 OP에 더 이상 적시성이 없지만 정보를 추가하려고합니다.

위의 BiggerDon은 "북"을 "N"으로 바꾸는 어려움을 지적합니다. "Avenue of the Americas"와 같은 유사한 문제가 "Avenue of Americas"가됩니다. 여전히 이해할 수 있지만 OP가 원하는 것은 아닙니다.

replace() 함수는 완전히 컨텍스트 프리이지만 주소는 필요하지 않습니다. 전체 솔루션은 컨텍스트를 올바르게 해석 할 수있는 추가 논리가 있어야하며 필요에 따라 replace()를 적용해야합니다. CASS (Coding Accuracy Support System)에 의해 미국 내 주소에 적용된 OP 문제의 일반화 된 버전이 다루어졌습니다 (유머!) CASS는 미국 주소를 받아들이고 표준을 충족 시키거나 수정하는 데이터베이스 도구입니다 미국 우편 서비스가 정한 위키피디아 등록 https://en.wikipedia.org/wiki/Postal_address_verification에는 기본 사항이 있으며 자세한 정보는 우체국에서 확인할 수 있습니다. https://ribbs.usps.gov/index.cfm?page=address_info_systems

관련 문제