Access SQL连接上的3075个错误加载到ODBC本机驱动程序11

时间:2016-10-03 15:21:42

标签: sql-server ms-access odbc

最近我将SQL服务器连接字符串更新为ODBC本机驱动程序11.0(以前是10.0)。在我的一个客户(公司B),也在我的计算机本地,这种方法很好,但在一个客户(公司A),我得到了多个奇怪的错误。

起初我在打开报告时注意到了这个错误,因为在我自己的计算机上它运行良好(accdb),但我在A公司没有做到这一点时,我完全无能为力。唯一真正的区别是他们在Access Runtime上运行应用程序。所以我也在公司B测试了它,它也在运行时运行应用程序,并且工作正常......

经过大量研究后我发现了这篇文章: https://www.experts-exchange.com/questions/28206732/Possible-issue-with-MS-Access-RUNTIME.html

在这篇文章中,有人提到错误可能与odbc驱动程序有关,而且恰好在我更新了ODBC驱动程序之后弹出了这些错误,而这一切都与ODBC 10驱动程序一起工作正常。在文章中他们还提到错误可能是由报表上的过滤器(打开时)引起的。所以我删除了过滤器(无论如何它都是无用的过滤器),它再次起作用了!

现在,在其他几个报告上返回错误并删除这些报告上的过滤器不是一个选项(错误似乎都与报告中的过滤器有关)。 错误编号相同(3075)但错误描述有所不同。一个错误有以下错误:This function is not available in expressions, in query-expression iif(isnull([Field1],[Field2]-Date(),[Field2]-[Field1]. 另一个错误是:This function is not available in expressions, in query-expression FORMAT(Min[tblX.FieldX]),'hh:mm:ss'.

我比较了我自己系统的SQL Server Native Client版本,它运行良好的B公司系统以及它不起作用的公司A系统,它们都具有相同的版本 - {{1 (除了10.0之外我安装了11.0,10.0也有相同的版本号)。

我的Access前端应用程序使用03.80使用链接的SQL服务器表 连接字符串如下:

ADODB / CurrentDb.TableDefs.Append

可能与问题相关的其他一些其他信息:

  • 它不工作的公司使用每个用户登录的VPS(虚拟专用服务器)。 Native客户端在VPS上安装一次,而另一家公司的Native客户端(它工作的地方)安装在他们使用该应用程序的每台计算机上(因为他们不使用VPS)。
  • 在公司B(工作地点)我手动安装本机驱动程序,我从这个网站下载安装文件:https://accessexperts.com/blog/2015/08/23/use-sql-server-native-client-11-0-for-the-best-performance/,在它没有工作的公司,本机驱动程序11.0已经安装(没有来自的历史)。

任何人都知道如何解决这个问题?提前谢谢你!

更新 我自己找到了解决方案。查看下面的帖子。

1 个答案:

答案 0 :(得分:1)

对于那些在这个问题上花费数小时调试和研究的不幸的人,我找到了解决方案。

在尝试多个事情(都没有用)之后,比如安装新的ODBC 11本机驱动程序,删除过滤器,将Access查询复制到视图并将Access中的视图作为表链接,检查和更改语言设置等等等,我终于遇到一个帖子,声称它可能不得不对参考文献做些什么。

所以我检查了应用程序是否存在损坏的引用,当我执行Access应用程序时,给出了一个错误,即没有注册一个对象库。不幸的是,我无法确切地确定它是哪个引用,因为每次我向上或向下移动一个随机引用(优先级)时,错误会弹出不同的引用,它几乎与索引相关。

最后删除2个引用并将它们Late Binding(我实际上随机选择进行测试)后,所有奇怪的错误都消失了...... 因此,出于某种原因,A公司的其中一个参考文献被破坏了(参见主要文章)。

结论:使用尽可能多的后期绑定可能会导致很多问题而不知道它们来自何处。