2014-01-28 3 views
0

VBA를 통해 암호화 된 SQL Server Compact Edition 데이터베이스에 액세스하려고합니다.Excel VBA에서 암호화 된 SQL Server Compact 데이터베이스에 액세스 할 수 있습니까?

: 나는 암호의 SQL Server Compact에 대한 connection string example provided here 다음 봤는데

pConn.ConnectionString = "PROVIDER=Microsoft.SQLSERVER.CE.OLEDB.3.5;Password=[my_password];Data Source=" & SdfPath 

: 내가 암호를 사용하려고하면이 암호화되지 않은 경우 나는 데이터베이스 벌금을 액세스 할 수 있지만 코드는 나누기

암호화 사용

데이터베이스에서 암호화를 사용하려면이 연결 문자열을 사용하십시오.

데이터 원본 = MyData.sdf; 암호화 데이터베이스 = True; 암호 = myPassword; 파일 모드 = 공유 읽기, 보안 정보 유지 = False;

암호 데이터베이스 자체가 연결에 대한 암호화 기능을 사용하기 때문에 Encryption Database = "True"쌍이 실제로 필요하지 않습니다.

그러나 왜 Excel VBA 2010에서는 작동하지 않습니까?

답변

1

분명히 내가 사용하고 있던 사이트의 연결 문자열 예가 잘못되었습니다. 내가 찾은 correct connection string example from Microsoft : 마이크로 소프트에서 ActiveX 데이터 사용

윈도우 CE (ADOCE), Microsoft ActiveX 데이터는 데이터 정의 언어 (DDL) 및 보안 (ADOXCE) 개체 확장, 또는를 만들려면 복제 객체 에 대한 개체 ADOCE 또는 ADOXCE Catalog 개체 또는 SQL Server CE 복제 ActiveX 개체의 AddSubscription 메서드를 사용하여 암호로 보호 된 데이터베이스 연결 문자열에 공급자 별 SSCE : 데이터베이스 암호 연결 속성을 지정해야합니다. "데이터베이스 암호 = myPassword]; 데이터 소스 = \ NorthWind.sdf SSCE 제공 = Microsoft.SQLSERVER.OLEDB.CE.2.0"이제

그리고 내 코드

: 예를 들어, is :

pConn.ConnectionString = "PROVIDER=Microsoft.SQLSERVER.CE.OLEDB.3.5;SSCE:Database Password=[my_password];Data Source=" & SdfPath 

이것은 완벽하게 작동했습니다.

0

SQL Server Compact 4.0이 설치되어 있고 연결 문자열에서 공급자로 "Microsoft.SQLSERVER.CE.OLEDB.2.0"또는 "Microsoft.SQLSERVER.CE.OLEDB.3.5"를 사용하는 경우 공급자를 언급하는 오류가 발생합니다 찾을 수 없습니다. "Microsoft.SQLSERVER.CE.OLEDB.4.0"을 반영하도록 연결 문자열을 변경하십시오.