0

我是一个新手,试图将 MS Access Appln(当前连接到外部 Access 数据库)连接到远程 SQL Server 2005。为了更容易分发给大量受众,希望使其无 DSN。

我可以使用以下连接字符串连接到本地 Access db

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-less 连接与 SQL 服务器连接,但我失败了。我尝试的代码是:-

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\IP address\databasename;User ID=username;Password=pwd;

我得到的错误信息是:

预计行尾

请建议我一些方法来解决这个问题。

4

1 回答 1

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)您不需要为“Persist..”条款而烦恼。
3) SQLOLEDB 提供程序已经存在了一段时间。它与 MDAC 一起很好地分发,您可能会在许多客户端计算机上找到它,但它有一些限制:
- 它无法连接到较新版本的 SQL Server,尤其是在与其他版本的计算机并排运行的同一台机器上时SQL 服务器。您最终不得不将端口号添加到连接字符串中。
- 它不支持较新的服务器版本具有的较新的 SQL 语言功能。
4) 有较新的提供程序(2005 年为“Native Client”,2008 年为“Native Client 10”等),但您应该检查它们是否已分发到您的所有 PC。

这是一个带有 Native Client 连接字符串的页面(9 / 2005): http:
//www.connectionstrings.com/sql-server-2005#sql-server-native-client-9-0-oledb-provider

于 2013-01-07T23:49:02.653 回答