Access 2000连接到SQL Server 2005

时间:2020-03-05 18:40:29  来源:igfitidea点击:

我工作的公司有一个使用SQL Server 2000后端的旧Access 2000应用程序。我们的任务是将后端移动到新服务器上的SQL Server 2005数据库中。不幸的是,尝试进行任何插入或者更新时,应用程序无法正常运行。我的研究发现许多论坛帖子都表明Microsoft不支持Access 2000-> SQL 2005,但是我找不到任何Microsoft文档来验证这一点。

任何人都可以将我链接到一些官方文档,或者有人使用过此设置并可以确认它应该起作用并且我们的问题出在其他地方吗?

不确定是否重要,但是该应用程序是编译为ADE的ADP。

解决方案

回答

我想检查一下宏中的VBA,看看它是如何工作的。它可能正在使用某种形式的VB连接到后面的数据库。我喜欢数据库正在联系数据库以获取其数据的事实... :)

回答

我对Access 2000-> SQL Server 2005的全部了解是不支持升迁向导。

如果只有插入和更新不起作用,这听起来像是权限问题。确保在连接字符串中使用的SQL Server登录名对数据库具有读/写权限。

请避免为此目的使用" sa"帐户!

回答

我不确定是否支持该特定组合,但是我们是否尝试过将数据库的兼容模式设置为sql server2000。也许可以解决问题。

编辑:为此,请运行以下SQL:

EXEC sp_dbcmptlevel Name_of_your_database, 80;

此处有更多详细信息:http://blog.sqlauthority.com/2007/05/29/sql-server-2005-change-database-compatible-level-backward-compatibility/

回答

If only the inserts and updates aren't
  functioning, it sounds like a
  permissions issue. Make sure the sql
  server login you are using in your
  connection string has read/write
  permission on your database.
  
  Please avoid using the "sa" account
  for this purpose!

我们想使用一个通用的应用程序帐户,但是该登录名"找不到"任何存储过程,即使它们已存在并且该登录名具有运行它们的显式权限(并且作为该用户在SQL Management Studio中也已成功测试) 。直到我们授予登录" sa"特权后,我们才可以实际上通过该应用程序访问数据库。

but have you tried setting the
  compatibilty mode for the database to
  sql server 2000.

我不太确定如何做到这一点。你能解释一下吗?

还要注意的是,如果我们将应用程序升级到Access 2003,则一切正常。不幸的是,我们的IT部门不希望将每个人都从Office 2000升级到2003,因此这不是一个选择。

谢谢你的帮助。

回答

but have you tried setting the
  compatibilty mode for the database to
  sql server 2000.

我刚刚检查了2005数据库,选择了数据库,然后单击Properties-> Options,它说数据库已经处于2000兼容模式。

回答

在使用ODBC链接表连接到Sql Server之前,我遇到过类似的问题。解决方案是重新链接表并指定表的主键。如果Access不知道主键,它将无法执行插入或者更新。

我没有使用ADP的经验,但是可能是类似的事情,这里有一篇有关知识库的文章http://support.microsoft.com/?scid=kb%3Ben-us%3B235267&x=15&y=13

回答

访问ADP与SQL Server版本紧密相关,并且MS在修复和破坏已发布的3个主要版本(2000、2002和2003)中的ADP方面做得非常差。

如果我们尝试使用编译后的ADE,建议我们首先找到原始的ADP,看看是否可以使它工作。在创建ADE之前,我们可能需要在那里做一些工作。

警告:我不使用ADP,但很高兴我做出了不这样做的决定,因为Microsoft现在不推荐使用ADP,而推荐使用MDB => ODBC => SQL Server。