Vba 过时的引用是否会导致查询数据时出错?

Vba 过时的引用是否会导致查询数据时出错?,vba,ms-access,Vba,Ms Access,我有一个例子,在MS Access中将数据更新到表时出错 在工作的服务器文件上,有一个MDB格式的锁定数据库文件,除非在其属性路径中添加security.mdw,否则无法访问该文件。在该数据库上,文件包含一个表单,该表单添加作业、更新作业,并从本地表和通过MySQL ODBC Ansi驱动程序存储的表中删除作业。它是如何运行的并不是问题,因为每当我在窗体打开时未显示错误的Windows 10和导致窗体打开时此控件中没有对象的速度较慢的Windows 7计算机上测试函数时,它们都会正常运行 但目前

我有一个例子,在MS Access中将数据更新到表时出错

在工作的服务器文件上,有一个MDB格式的锁定数据库文件,除非在其属性路径中添加security.mdw,否则无法访问该文件。在该数据库上,文件包含一个表单,该表单添加作业、更新作业,并从本地表和通过MySQL ODBC Ansi驱动程序存储的表中删除作业。它是如何运行的并不是问题,因为每当我在窗体打开时未显示错误的Windows 10和导致窗体打开时此控件中没有对象的速度较慢的Windows 7计算机上测试函数时,它们都会正常运行

但目前我有一个问题,即使用同一个锁定的MDB文件时,当其他人更新作业状态时,更新作业数据时出现了错误,就像在显示mysql表数据的网站上显示的错误数据一样。在另一个版本的表单函数(另存为.ACCDB并可编辑)上,我有以下参考:

1/Visual Basic For Applications 2/Microsoft Access 16.0对象库 3/OLE自动化 4/Microsoft ActiveX数据对象6.1库 5/Microsoft DAO 3.6对象库 6/Microsoft Windows通用控件-2 6.0

在锁定的mdb文件上,引用是

1/Visual Basic For Applications 2/Microsoft Access 16.0对象库 3/OLE自动化 4/Microsoft ActiveX数据对象2.1库 5/Microsoft DAO 3.6对象库 6/Microsoft Excel 16.0对象库 7/Microsoft Word 16.0对象库 8/Microsoft Forms 2.0对象库

由于mdb文件已锁定,因此每次打开该文件时,它甚至无法保存对引用列表所做的任何更改。因此,即使我添加了可怕的MSCONCTL.OCX文件,导致Windows 7系统上的控件中没有对象,但仍然会导致该错误


因此,我的问题正如标题所述。过时的引用有时会导致查询数据出错吗?

因为您同时拥有DAO和ADO,所以您的代码应该总是消除歧义,没有例外。不要依赖参考优先级为您做正确的事情

不要将rs作为记录集进行调整,而是将rs作为DAO.Recordset进行调整,或者将rs作为ADODB.Recordset进行调整


另外,MDB被锁定,并且您提到了security.mdw,这听起来像是在使用旧的工作组安全性。我会摆脱它现在没有安全价值,并更新引用。自那时起,DAO和ADO都已更新;您应该使用最新的DAO,现在命名为Microsoft Office Access数据库引擎库和ADO 6.1。

即使在mdb版本上,VB代码本身也在发挥作用。DAO仅用于数据库链接,而ActiveX仅用于控件。当有人在mdb文件上使用它时,收到了这个错误,所以我想知道是否是过时的表单元素/引用导致了这一切。否则,通过常规文本框更新数据就可以了。