以下几组Microsoft集合之间有什么区别?其中一些似乎指向相同的数据&子对象,但通过不同的管道。我认为DAO对象是特定于DBMS的,但是Access.⃰代码.⃰和Access.⃰项目.⃰不是,并通过访问连接。有ADODB,这完全是另一种野兽。此外,如果没有该类型的子对象,则某些集合可能不存在。
考虑到SQL特性的提及,似乎有三种场景需要关注,但很难理解:
对象集#1:
对象集#2:
对象集#3:
发布于 2017-12-08 21:30:14
您应该已经知道(自从我告诉您here),您可以将代码存储在外部数据库中,并从另一个数据库引用该代码。
此外部数据库中的代码可能依赖于某些表、查询和表单。但是由于它是在另一个数据库上运行的,所以它们可能不是。
这就是CodeDb,CodeProject和CodeData进来的地方。它们完全等价于从Current开始的变体,只引用存储代码的数据库,而不是当前打开的数据库。
CurrentDb、CurrentProject和CurrentData之间的差异实际上是要求苹果、梨和橙子之间的区别。它们都是对象,但功能不同。正如ThunderFrame所指出的,CurrentDb主要是DAO,CurrentProject包含一些ADO功能(主要是连接),但也包含影响数据库的VBA部分、数据库路径和许多其他函数的函数。而CurrentData完全是另外一回事。
发布于 2017-12-08 21:29:41
最大的区别在于您正在使用的数据库的类型。标准的Microsoft数据库 (*.accdb)将主要使用CurrentDB/CodeDB对象来引用数据库对象。
另一方面,ADP项目与server上的一些数据(表、查询等)是混合的。通过CurrentData/CodeData和驻留在*.adp文件中的表单和报表等其他对象访问,并通过CurrentProject/CodeProject访问。
当涉及多个数据库文件(例如作为库数据库引用的其他Access数据库)时,CurrentDB和CodeDB之间的区别就会发挥作用。这些库数据库可能具有与父应用程序交互的功能,以及其他引用库的函数。
发布于 2017-12-08 21:33:24
在Access中,CodeDB和CurrentDb函数返回DAO.Database对象。
CodeDb是正在运行代码的数据库或外接程序(可能与CurrentDb不一样)。
CurrentDb是当前活动的数据库(而不是a外接程序)。
Access 2002/03添加了ADODB,因此他们添加了CurrentProject和CodeProject函数来返回CurrentDb和CodeDb的ADO等价物,但作为ADO,它们有非常不同的方法和属性。
https://stackoverflow.com/questions/47722329
复制相似问题