我们这里有一些MS Access 2007应用程序。我负责一个。通常,它永远不会出现任何问题。直到今天,我都没有收到这个应用程序用户的消息。这是几年前某人(我不知道是谁)写的,几乎没有文件。我们正在用Windows 10机器替换所有Windows 7机器。起初,我认为这就是问题所在。但是,负责多个Access 2007应用程序的我的一位同事说,他的用户可以毫无问题地使用他们的Access应用程序。
回头看用户的错误,它简单地说:“ ODBC-调用失败”。没有错误号;只是。因此,我的下一个想法是,新的Windows 10计算机上可能缺少DSN。但是,我要求PC技术人员检查一台工作正常的Windows 7计算机。他告诉我其中没有DSN。我不是Access开发人员,所以我问做Access开发的同事他能发现什么。他发现这些表都是SQL Server数据库中的所有链接表。看着他指的是什么(现在我知道该看哪里了),我明白了他的意思。与每个表的连接均使用可信连接。他们都指向正确的SQL数据库服务器。那台服务器在那里。当我进入SSMS时,可以轻松地在表中看到数据。
那么,是什么导致该错误发生,特别是因为它看起来好像不需要DSN才能建立与SQL db的连接?
答案 0 :(得分:1)
我认为您的Windows 10是64位。 可能您的访问权限是32位的。 重要的是要知道! 如果我的假设是正确的,则需要使用32位版本的ODBC admin来设置DSN。
即使在64位OS上,32位Access也会使用32位版本的ODBC admin查找DSN设置。如果使用64位版本的ODBC admin设置DSN,则32位访问权限将看不到它!
返回Windows 7 PC,并准确检查DSN的设置方式。 是系统,用户还是文件DSN? 为SQL Server安装了哪些驱动程序? (有多种不同的ODBC客户端可用于SQL Server。) 在Windows 10上创建DSN时,请复制此DSN配置。
听起来像您在Windows 7上使用“ SQL Server Native Client” 因此请确保将其安装在Windows 10上。