В чем разница между модулями и модулями классов в Access? - PullRequest
0 голосов
/ 03 января 2019

Я знаю, что классы - это шаблоны для создания объектов. Но мы не можем создавать объекты в VBA. Я новичок в VBA. Я не понимаю назначение модулей классов в VBA

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Доступ, безусловно, позволяет создавать объекты. Поскольку Access не поддерживает наследование и такие вещи, как «перегрузка», то Access не считается полноценной объектно-ориентированной системой программирования.

Однако у него есть «некоторые» части, которые считаются ОО (объектно-ориентированными), и вы вполне можете использовать такой подход. В следующей статье я объясню, когда и почему вы можете использовать + создание объектов в Access:

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

Таким образом, Access не является полным OO, но он, безусловно, обладает способностью создавать объекты классов, как вы сказали бы в vb.net или c #. Сейчас я использую объекты классов довольно часто, и в приведенной выше статье вы узнаете, когда и почему вы захотите сделать это в Access.

0 голосов
/ 03 января 2019

Конечно, вы можете создавать объекты в 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...