2014-04-21 2 views
1

Excel에서 데이터를 선택하기 위해 VB6에서 ADODB를 사용하고 있습니다. Excel의 "Book_Title"열에 확장 된 ASCII 문자 (Abreve-ñ)가 있습니다.ADODB가 확장 ASCII 문자를 선택하지 못했습니다.

하지만 다음 코드를 사용하면 Abreve 대신 "A"만 얻습니다.

sConn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=D:\sheik\metadata.xls" 
rs.Open "SELECT [Book_Title], [Author_Title] FROM [Sheet1$], sConn 

답변

0

여기에서 문제는 Excel 드라이버가 문자열을 ANSI 기호로 변환한다는 것입니다. 어떤 "똑똑한"코드는 문자 (258)를 A (65)로 변환합니다. 이 설치 ISAM 엑셀 드라이버와 JET 드라이버가있는 경우

, 다음 연결 문자열을 사용합니다 :

sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\sheik\metadata.xls;Extended Properties=""Excel 8.0;""" 

이제 변환되지 않은 문자열을 다시 얻을 것이다. 그러나 현재 코드 페이지에이 문자가 존재하지 않으므로 내장 VB 컨트롤이나 IDE에서 올바르게 볼 수 없습니다.

그러나 Mid $()로 얻은 문자열의 문자를 보려면 AscW() 함수를 사용하여 첫 번째 문자가 올바른지 확인할 수 있습니다.