Вопрос

Я знаю, что это простой вопрос для кого-то там, но я вообще никогда по-настоящему не использовал функциональный модуль, потому что не понимал, что это такое.

Итак, у меня есть целая куча вещей, для которых я могу это использовать (сократить избыточность), но я хочу знать, как я вызываю вспомогательную процедуру (например, нажатие кнопки) из формы.

Я попробовал это...

Sub Command_Click()
    Call "pptCreator"
End Sub

Я знаю, что это довольно плохо, но я понятия не имею, как включить это в процедуру.

Это было полезно?

Решение

Вот несколько различных способов вызова объектов в Microsoft Access:

Чтобы вызвать вспомогательную форму или функцию из модуля

Вспомогательный элемент в вызываемой вами форме ДОЛЖЕН быть общедоступным, как в:

Public Sub DoSomething()
  MsgBox "Foo"
End Sub

Вызовите подлодку вот так:

Call Forms("form1").DoSomething

Форма должна быть открыта до того, как вы совершите звонок.

Чтобы вызвать процедуру события, вы должны вызвать общедоступную процедуру внутри формы и вызвать процедуру события внутри этой общедоступной процедуры.

Для вызова подпрограммы в модуле из формы

Public Sub DoSomethingElse()
  MsgBox "Bar"
End Sub

... просто вызовите его непосредственно из вашей процедуры проведения мероприятия:

Call DoSomethingElse

Вызов подпрограммы из формы без использования процедуры события

Если вы хотите, вы действительно можете привязать функцию к событию элемента управления формой без необходимости создавать процедуру события в элементе управления.Чтобы сделать это, вам сначала понадобится общедоступная функция в модуле вместо вспомогательной, например:

Public Function DoSomethingElse()
  MsgBox "Bar"
End Function

Затем, если у вас есть кнопка в форме, вместо того, чтобы помещать [Event Procedure] в событие OnClick окна свойств, поместите это:

=DoSomethingElse()

Когда вы нажмете на кнопку, она вызовет общедоступную функцию в модуле.

Вызывать функцию вместо процедуры

Если вызов sub выглядит следующим образом:

Call MySub(MyParameter)

Тогда вызов функции выглядит следующим образом:

Result=MyFunction(MyFarameter)

где Result - это переменная типа, возвращаемая функцией.

ПРИМЕЧАНИЕ: Вам не всегда нужно ключевое слово Call.В большинстве случаев вы можете просто вызвать вспомогательный модуль следующим образом:

MySub(MyParameter)

Другие советы

если pptCreator является функцией / процедурой в том же файле, вы могли бы вызвать его, как показано ниже

call pptCreator()

Вызов вспомогательной процедуры – трехходовой метод

Как только у вас есть процедура, независимо от того, создали ли вы ее или она является частью языка Visual Basic, вы можете использовать ее.Использование процедуры также называется ее вызовом.

Перед вызовом процедуры вам следует сначала найти раздел кода, в котором вы хотите ее использовать.Чтобы вызвать простую процедуру, введите ее имя.Вот такой пример:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"

msgbox strFullName
End Sub

Sub Exercise()
    CreateCustomer
End Sub

Помимо использования имени процедуры для ее вызова, вы также можете предварить ее ключевым словом Call.Вот такой пример:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    Call CreateCustomer
End Sub

При вызове процедуры без ключевого слова Call или без него вы можете дополнительно ввести открывающую и закрывающую круглые скобки в правой части ее имени.Вот такой пример:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    CreateCustomer()
End Sub

Процедуры и уровни доступа

Подобно переменному доступу, доступ к процедуре может контролироваться уровнем доступа.Процедура может быть как частной, так и публичной.Чтобы указать уровень доступа к процедуре, укажите перед ним ключевое слово Private или Public.Вот такой пример:

Private Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Правила, которые были применены к глобальным переменным, те же самые:

Частное:Если процедура становится закрытой, она может быть вызвана другими процедурами того же модуля.Процедуры внешних модулей не могут получить доступ к такой процедуре.

Кроме того, если процедура является частной, ее имя не отображается в диалоговом окне Макросы

Публичный:Процедура, созданная как общедоступная, может быть вызвана процедурами того же модуля и процедурами других модулей.

Кроме того, если процедура была создана как общедоступная, при доступе к диалоговому окну Макросы отображается ее имя, и вы можете запустить ее оттуда

Процедуры в модуле начинают быть полезными и универсальными, когда вы передаете аргументы.

Например:

Public Function DoSomethingElse(strMessage As String)  
    MsgBox strMessage
End Function

Теперь можно отображать любое сообщение, переданное со строковой переменной strMessage .

Чтобы добавить функцию К новой Кнопке в вашей Форме:(и избегайте использования макроса для вызова функции)

После того, как вы создали свою функцию (Function MyFunctionName()) и перешли в режим конструктора формы:

  1. Добавьте новую кнопку (я не думаю, что вы можете переназначить старую кнопку - хотя и не уверен).
  2. Когда откроется окно мастера создания кнопок, нажмите кнопку Отмена.
  3. Перейдите на вкладку "Свойства кнопки События" - На поле для нажатия.
  4. В раскрывающемся меню "поля" выберите:Процедура проведения мероприятия.
  5. Теперь нажмите на кнопку рядом с выпадающим меню , в котором есть ...в нем и вы попадете в новое Частный подраздел в окне forms Visual Basic.
  6. В этом Частном подтипе:Вызовите MyFunctionName
    Это должно выглядеть примерно так:

Частная вспомогательная Команда23_Click()

Вызовите MyFunctionName

Конечная подстанция

  1. Тогда просто сохраните это.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top