我是一个新手,尝试将MS Access Appln(当前连接到外部Access数据库)连接到远程SQL Server 2005.为了更容易分发给大量受众,希望使其无DSN。
我可以使用以下连接字符串连接到本地Access数据库
DbFullName = CurrentProject.Path & "\" & "project_DB.accdb"
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DbFullName & ";Jet OLEDB:Database Password=pwd;"
对于SQL Server 2005连接,当我尝试执行以下命令时,
"Data Source=myserverdev;Initial Catalog=project_DBSQL;Persist Security Info=True;User ID=msaccess_cbd;Password=Paci0113"
providerName = "System.Data.SqlClient"
我收到错误 -
找不到数据源名,找不到设备驱动程序
我尝试通过VB通过无DSN连接与SQL服务器连接,但我失败了。我尝试的代码是: -
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\IP address\databasename;User ID=username;Password=pwd;
我得到的错误信息是:
预期的结束
请建议我解决这个问题。
答案 0 :(得分:1)
System.Data.SqlClient看起来像ADO * .NET *提供程序。在VBA中编码时,需要使用ADO / OLEDB提供程序。 这是旧OLEDB提供商的连接字符串:
"Provider=SQLOLEDB.1;Data Source=myserverdev;User ID=msaccess_cbd;Password=Paci0113;Initial Catalog=project_DBSQL"
有些观点:
1)你现在告诉全世界的密码,你最好更改密码
2)你不需要打扰"坚持......"条款。
3)SQLOLEDB提供商已经存在了一段时间。它与MDAC一起分发很好,您可能会在许多客户端计算机上找到它,但它有一些限制:
- 它与较新版本的SQL Server连接能力较差,尤其是在与其他版本的SQL Server同一台机器上并行运行时。您最终必须在连接字符串中添加端口号
- 它不支持较新的服务器版本具有的新SQL语言功能
4)有较新的提供商(' Native Client' for 2005,' Native Client 10' for 2008等)但您应该检查它们是否已经分发到您的所有PC。
这是一个包含Native Client(9/2005)连接字符串的页面:
http://www.connectionstrings.com/sql-server-2005#sql-server-native-client-9-0-oledb-provider