我想通过VBA访问加密的SQL Server Compact Edition数据库。我可以在未加密时访问数据库,但是当我尝试使用密码时代码中断了:
pConn.ConnectionString = "PROVIDER=Microsoft.SQLSERVER.CE.OLEDB.3.5;Password=[my_password];Data Source=" & SdfPath
我一直在使用密码:
跟踪SQL Server Compact的connection string example provided here启用加密
使用此连接字符串启用数据库加密。
数据源= MyData.sdf;加密数据库= True;密码= myPassword; 文件模式=共享读取;持久安全信息=错误;
加密数据库=“真”对实际上没有必要,因为密码参数本身的存在会为连接启用加密。
但为什么这不适用于Excel VBA 2010?
答案 0 :(得分:1)
显然,我使用的网站中的连接字符串示例不正确。我找到了correct connection string example from Microsoft:
使用MicrosoftActiveX®数据对象的Windows CE(ADOCE),Microsoft ActiveX数据对象扩展的数据定义语言(DDL)和安全性(ADOXCE),或复制对象 要使用ADOCE或ADOXCE目录对象或SQL Server CE Replication ActiveX对象的AddSubscription方法创建受密码保护的数据库,必须指定特定于提供程序的SSCE:数据库密码连接属性在连接字符串中。例如:
“Provider = Microsoft.SQLSERVER.OLEDB.CE.2.0; data source = \ NorthWind.sdf; SSCE:数据库密码= [myPassword] ”
现在我的代码是:
pConn.ConnectionString = "PROVIDER=Microsoft.SQLSERVER.CE.OLEDB.3.5;SSCE:Database Password=[my_password];Data Source=" & SdfPath
这对我很有用。
答案 1 :(得分:0)
如果安装了SQL Server Compact 4.0并使用“Microsoft.SQLSERVER.CE.OLEDB.2.0”或“Microsoft.SQLSERVER.CE.OLEDB.3.5”作为连接字符串中的提供程序,则会收到错误提示提供程序找到。更改连接字符串以反映到“Microsoft.SQLSERVER.CE.OLEDB.4.0”。