0

我想通过 VBA 访问加密的 SQL Server Compact Edition 数据库。我可以在未加密的情况下正常访问数据库,但是当我尝试使用密码时代码会中断:

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

我一直在关注此处为带有密码的 SQL Server Compact提供的连接字符串示例:

启用加密

使用此连接字符串在数据库上启用加密。

数据源=MyData.sdf;加密数据库=True;密码=myPassword;文件模式=共享读取;持久安全信息=假;

Encrypt Database="True" 对实际上不是必需的,因为密码参数本身的存在打开了连接的加密。

但是为什么这在 Excel VBA 2010 中不起作用?

4

2 回答 2

1

显然,我使用的站点中的连接字符串示例不正确。我从 Microsoft 找到了正确的连接字符串示例

使用 Microsoft ActiveX® Data Objects for Windows CE (ADOCE)、Microsoft ActiveX Data Objects Extensions for Data Definition Language (DDL) 和安全性 (ADOXCE) 或复制对象 使用 ADOCE 或 ADOXCE 目录创建受密码保护的数据库对象或 SQL Server CE 复制 ActiveX 对象的 AddSubscription 方法,您必须在连接字符串中指定提供程序特定的 SSCE:Database Password 连接属性。例如:

“提供者=Microsoft.SQLSERVER.OLEDB.CE.2.0;数据源=\NorthWind.sdf;SSCE:数据库密码=[myPassword]

所以现在我的代码是:

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

这对我来说非常有效。

于 2014-01-28T19:14:04.603 回答
0

如果您安装了 SQL Server Compact 4.0 并在连接字符串中使用“Microsoft.SQLSERVER.CE.OLEDB.2.0”或“Microsoft.SQLSERVER.CE.OLEDB.3.5”作为提供程序,您将收到一个错误提示未找到提供程序。更改连接字符串以反映为“Microsoft.SQLSERVER.CE.OLEDB.4.0”。

于 2017-04-25T17:50:40.013 回答