2010-07-27 5 views
1

나는 거대하고 부피가 큰 MS Access 데이터베이스를 상속 받았으며 문제를 해결하도록 지정되었습니다. 문제는 다음과 같습니다.Microsoft Access TransferText 함수 : 코드 페이지의 문제점

시스템 A는 데이터를 파이프 라인 구분 .txt 파일로 내 보냅니다. 파일에는 메모장 또는 Excel에서이 파일을 열 때 "Müller"값과 같은 특수 문자가 올바르게 작동합니다.

다음으로 Access 데이터베이스는 .txt 파일을 가져 와서 결과를 내부 직원 테이블에 저장합니다. 성 필드는 "메모"데이터 유형입니다. MS 액세스 할 수있는 .txt 파일에서 데이터를 가져 오는 방법은 다음과 같다 :

Call DoCmd.TransferText(acImportDelim, _ 
         "tblEmployees", _ 
         "tblEmployees", _ 
         me.txtImportFile, _ 
         True) 

이 가져 오기를 실행하고 나는 특수 문자 이름을 망쳐 것으로 나타났습니다 직원 테이블을 본 후. "Müller"는 예를 들어 "M⌐⌐ler"가됩니다. 나는 어떤 온라인 도움말을 조사하고 TransferText 통화에서 "코드 페이지"매개 변수를 포함 할 수 발견, 그래서 나는 (appearantly 유니 코드에 대한 코드 페이지 인) 65001로 설정 : 이제 나는 도망 한 것을

Call DoCmd.TransferText(acImportDelim, _ 
         "tblEmployees", _ 
         "tblEmployees", _ 
         me.txtImportFile, _ 
         True, _ 
         , _ 
         65001) 

다시 스크립트를 가져 오면 어떤 차이도 보이지 않지만 특수 문자는 여전히 잘못되었습니다. 나는 당신이 하나를 해결할 수있는 방법에 대한 조언을 가지고 있기를 바란다.

답변

2

TransferText 작업의 두 버전 모두 tblEmployees라는 SpecificationName을 사용하고있다. 해당 사양에 어떤 코드 페이지가 지정되어 있습니까?

텍스트 파일을 수동으로 가져 오십시오. 텍스트 가져 오기 마법사에서 "고급"을 선택하십시오. 그런 다음 코드 페이지 목록 상자에서 유니 코드를 선택하십시오. 어떤 코드 페이지를 올바르게 가져올 때까지 다른 코드 페이지 선택으로 테스트해야 할 수도 있습니다.

코드 페이지 선택이 작동하는 곳은 선택 항목을 사양으로 저장하고 별도의 CodePage 매개 변수를 제공하지 않고 TransferText 명령에 사용합니다.

0

코드 페이지 = 1,200 (msoEncodingUnicodeLittleEndian) 내 경우 문제를 해결했다.

관련 문제