我知道类是用于创建对象的模板。但是我们不能在VBA中创建对象。我是VBA的新手。我不了解VBA中的类模块的目的
答案 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/