在 Microsoft Access 中,CodeData、CodeProject 和 DAO.. 之间的关系是什么?
In Microsoft Access, what are the relationships between CodeData, CodeProject, and DAO..?
以下几组 Microsoft Access VBA 集合之间有什么区别..?其中一些似乎指向相同的数据和子对象,但通过不同的管道。我认为 DAO 对象是特定于 DBMS 的,但 Access.⃰ Code.⃰ 和 Access.⃰ Project.⃰ 不是,而是通过 Access 连接。还有 ADODB,它完全是另一种野兽。此外,如果没有该类型的子对象,似乎某些集合可能不存在。
鉴于提到 SQL 个功能,似乎有三种情况需要关注,但很难掌握:
- 一个独立的 ACCDB 文件。
- 具有两个或多个 ACCDB 的拆分数据库
文件。
- SQL 服务器的访问前端。
对象集#1:
- Access.CodeData.AllTables
- Access.CodeData.AllQueries
- Access.CodeData.AllFunctions
- Access.CodeData.AllDatabaseDiagrams
- Access.CodeData.AllStoredProcedures
- Access.CodeData.AllViews
- Access.CodeProject.AllForms
- Access.CodeProject.AllMacros
- Access.CodeProject.AllModules
- Access.CodeProject.AllReports
- 当然还有 CodeData 与 CurrentData 和 CodeProject 与 CurrentProject。
对象集#2:
- Access.Application.CodeData.*
- Access.Application.CodeProject.*
对象集#3:
- Access.Application.CurrentDb.QueryDefs (DAO.QueryDefs)
- Access.Application.CurrentDb.Relations (DAO.Relations)
- Access.Application.CurrentDb.TableDefs (DAO.TableDefs)
最大的区别在于您正在使用的数据库的类型。标准的 Microsoft Access 数据库 (*.accdb) 将主要使用 CurrentDB
/CodeDB
对象来引用数据库对象。
另一方面,ADP 项目 是 SQL 服务器上某些数据(表、查询等...)的混合体通过 CurrentData
/CodeData
和驻留在 *.adp 文件中的其他对象(如表单和报告)访问,并通过 CurrentProject
/CodeProject
.
访问
当涉及多个数据库文件时,CurrentDB
和 CodeDB
之间的区别就会发挥作用,例如作为图书馆数据库引用的其他 Access 数据库。这些库数据库可能具有与父应用程序以及引用该库的其他应用程序交互的功能。
正如您应该已经知道的(因为我告诉过您 ),您可以将代码存储在外部数据库中,并从另一个数据库中引用该代码。
此外部数据库中的代码可能依赖于某些表、查询和表单。但由于它在另一个数据库上 运行,它们可能不是。
这就是CodeDb
、CodeProject
和CodeData
的用武之地。它们完全等同于以Current
开头的变体,仅引用数据库所在的数据库存储代码,而不是当前打开的数据库。
CurrentDb
、CurrentProject
和 CurrentData
之间的差异实际上是在询问苹果、梨和 o运行ges 之间的差异。它们都是对象,但具有不同的功能。正如 ThunderFrame 指出的那样,CurrentDb
主要是 DAO,CurrentProject
包含一些 ADO 功能(主要是连接),但也影响数据库的 VBA 部分,数据库路径,和许多其他功能。 CurrentData
完全是另外一回事。
在 Access 中,CodeDB
和 CurrentDb
函数 return DAO.Database
对象。
CodeDb
为数据库或插件,其中代码为运行(可能与CurrentDb
.
CurrentDb
是当前活动的数据库(不是 加载项)。
Access 2002/03 添加了 ADODB
,因此他们为 return 添加了 CurrentProject
和 CodeProject
函数 CurrentDb
和 CodeDb
,但作为 ADO,它们具有非常不同的方法和属性。
以下几组 Microsoft Access VBA 集合之间有什么区别..?其中一些似乎指向相同的数据和子对象,但通过不同的管道。我认为 DAO 对象是特定于 DBMS 的,但 Access.⃰ Code.⃰ 和 Access.⃰ Project.⃰ 不是,而是通过 Access 连接。还有 ADODB,它完全是另一种野兽。此外,如果没有该类型的子对象,似乎某些集合可能不存在。
鉴于提到 SQL 个功能,似乎有三种情况需要关注,但很难掌握:
- 一个独立的 ACCDB 文件。
- 具有两个或多个 ACCDB 的拆分数据库 文件。
- SQL 服务器的访问前端。
对象集#1:
- Access.CodeData.AllTables
- Access.CodeData.AllQueries
- Access.CodeData.AllFunctions
- Access.CodeData.AllDatabaseDiagrams
- Access.CodeData.AllStoredProcedures
- Access.CodeData.AllViews
- Access.CodeProject.AllForms
- Access.CodeProject.AllMacros
- Access.CodeProject.AllModules
- Access.CodeProject.AllReports
- 当然还有 CodeData 与 CurrentData 和 CodeProject 与 CurrentProject。
对象集#2:
- Access.Application.CodeData.*
- Access.Application.CodeProject.*
对象集#3:
- Access.Application.CurrentDb.QueryDefs (DAO.QueryDefs)
- Access.Application.CurrentDb.Relations (DAO.Relations)
- Access.Application.CurrentDb.TableDefs (DAO.TableDefs)
最大的区别在于您正在使用的数据库的类型。标准的 Microsoft Access 数据库 (*.accdb) 将主要使用 CurrentDB
/CodeDB
对象来引用数据库对象。
另一方面,ADP 项目 是 SQL 服务器上某些数据(表、查询等...)的混合体通过 CurrentData
/CodeData
和驻留在 *.adp 文件中的其他对象(如表单和报告)访问,并通过 CurrentProject
/CodeProject
.
当涉及多个数据库文件时,CurrentDB
和 CodeDB
之间的区别就会发挥作用,例如作为图书馆数据库引用的其他 Access 数据库。这些库数据库可能具有与父应用程序以及引用该库的其他应用程序交互的功能。
正如您应该已经知道的(因为我告诉过您
此外部数据库中的代码可能依赖于某些表、查询和表单。但由于它在另一个数据库上 运行,它们可能不是。
这就是CodeDb
、CodeProject
和CodeData
的用武之地。它们完全等同于以Current
开头的变体,仅引用数据库所在的数据库存储代码,而不是当前打开的数据库。
CurrentDb
、CurrentProject
和 CurrentData
之间的差异实际上是在询问苹果、梨和 o运行ges 之间的差异。它们都是对象,但具有不同的功能。正如 ThunderFrame 指出的那样,CurrentDb
主要是 DAO,CurrentProject
包含一些 ADO 功能(主要是连接),但也影响数据库的 VBA 部分,数据库路径,和许多其他功能。 CurrentData
完全是另外一回事。
在 Access 中,CodeDB
和 CurrentDb
函数 return DAO.Database
对象。
CodeDb
为数据库或插件,其中代码为运行(可能与CurrentDb
.
CurrentDb
是当前活动的数据库(不是 加载项)。
Access 2002/03 添加了 ADODB
,因此他们为 return 添加了 CurrentProject
和 CodeProject
函数 CurrentDb
和 CodeDb
,但作为 ADO,它们具有非常不同的方法和属性。