Access中的模块和类模块有什么区别?

时间:2019-01-03 10:48:04

标签: vba ms-access

我知道类是用于创建对象的模板。但是我们不能在VBA中创建对象。我是VBA的新手。我不了解VBA中的类模块的目的

2 个答案:

答案 0 :(得分:2)

访问肯定可以使您创建对象。由于Access不支持继承以及诸如“重载”之类的内容,因此Access不被视为完整的面向对象的编程系统。

但是,它具有被认为是OO(面向对象)的“某些”部分,您可以很好地使用这种方法。在下面的文章中,我将说明何时以及为什么要在Access中使用+创建对象:

http://www.kallal.ca/Articles/WhyClass.html

所以Access不是完整的OO,但是它肯定有创建类对象的能力,就像您在vb.net或c#中所说的那样。我现在经常使用类对象,上面的文章将为您提供有关何时以及为什么要在Access中执行此操作的一些建议。

答案 1 :(得分:1)

您当然可以在vba中创建对象:

如果您将classModule命名为:“ YooClass”,则可以通过以下方式创建对象:

Dim myObject as YooClass
Set myObject = new YooClass

我还使用以下代码创建了一个名为ObjectFactory的非类模块:

Public Function Yoo(...) As YooClass
  Set Yoo= New YooClass
  Call Yoo.Init(...)
End Function

这可以作为构造函数。所以我可以写:

Dim myObject as YooClass
Set myObject = new Yoo(...)

或直接像这样调用函数

Call Yoo.MyFunction(...)

这是一种“静态”函数调用(或尽可能接近vba)。

如果您想了解有关VBA(或一般而言)中类的更多信息:有很多关于此的教程,其中包含很多解释和示例。像这样:https://analystcave.com/vba-vba-class-tutorial/