首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Microsoft中,CodeData、CodeProject和DAO.之间有什么关系?

在Microsoft中,CodeData、CodeProject和DAO.之间有什么关系?
EN

Stack Overflow用户
提问于 2017-12-08 21:21:48
回答 3查看 717关注 0票数 1

以下几组Microsoft集合之间有什么区别?其中一些似乎指向相同的数据&子对象,但通过不同的管道。我认为DAO对象是特定于DBMS的,但是Access.⃰代码.⃰和Access.⃰项目.⃰不是,并通过访问连接。有ADODB,这完全是另一种野兽。此外,如果没有该类型的子对象,则某些集合可能不存在。

考虑到SQL特性的提及,似乎有三种场景需要关注,但很难理解:

  1. 一个独立的ACCDB文件。
  2. 包含两个或多个ACCDB文件的拆分数据库。
  3. 访问SQL服务器的前端。

对象集#1:

  1. Access.CodeData.AllTables
  2. Access.CodeData.AllQueries
  3. Access.CodeData.AllFunctions
  4. Access.CodeData.AllDatabaseDiagrams
  5. Access.CodeData.AllStoredProcedures
  6. Access.CodeData.AllViews
  7. Access.CodeProject.AllForms
  8. Access.CodeProject.AllMacros
  9. Access.CodeProject.AllModules
  10. Access.CodeProject.AllReports
  11. 当然,CodeData对CurrentData和CodeProject对CurrentProject。

对象集#2:

  1. Access.Application.CodeData.*
  2. Access.Application.CodeProject.*

对象集#3:

  1. Access.Application.CurrentDb.QueryDefs (DAO.QueryDefs)
  2. Access.Application.CurrentDb.Relations (DAO.Relations)
  3. Access.Application.CurrentDb.TableDefs (DAO.TableDefs)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-12-08 21:30:14

您应该已经知道(自从我告诉您here),您可以将代码存储在外部数据库中,并从另一个数据库引用该代码。

此外部数据库中的代码可能依赖于某些表、查询和表单。但是由于它是在另一个数据库上运行的,所以它们可能不是。

这就是CodeDbCodeProjectCodeData进来的地方。它们完全等价于从Current开始的变体,只引用存储代码的数据库,而不是当前打开的数据库。

CurrentDbCurrentProjectCurrentData之间的差异实际上是要求苹果、梨和橙子之间的区别。它们都是对象,但功能不同。正如ThunderFrame所指出的,CurrentDb主要是DAO,CurrentProject包含一些ADO功能(主要是连接),但也包含影响数据库的VBA部分、数据库路径和许多其他函数的函数。而CurrentData完全是另外一回事。

票数 2
EN

Stack Overflow用户

发布于 2017-12-08 21:29:41

最大的区别在于您正在使用的数据库的类型。标准的Microsoft数据库 (*.accdb)将主要使用CurrentDB/CodeDB对象来引用数据库对象。

另一方面,ADP项目与server上的一些数据(表、查询等)是混合的。通过CurrentData/CodeData和驻留在*.adp文件中的表单和报表等其他对象访问,并通过CurrentProject/CodeProject访问。

当涉及多个数据库文件(例如作为库数据库引用的其他Access数据库)时,CurrentDBCodeDB之间的区别就会发挥作用。这些库数据库可能具有与父应用程序交互的功能,以及其他引用库的函数。

票数 3
EN

Stack Overflow用户

发布于 2017-12-08 21:33:24

在Access中,CodeDBCurrentDb函数返回DAO.Database对象。

CodeDb是正在运行代码的数据库外接程序(可能与CurrentDb不一样)。

CurrentDb是当前活动的数据库(而不是a外接程序)。

Access 2002/03添加了ADODB,因此他们添加了CurrentProjectCodeProject函数来返回CurrentDbCodeDb的ADO等价物,但作为ADO,它们有非常不同的方法和属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47722329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档