Pergunta

Eu sei que esta é uma pergunta simples para alguém lá fora, mas eu nunca realmente utilizado módulo de função em todos, porque eu não entendia o que eram.

Então, eu tenho um monte de coisas que eu posso usar isso para (reduzir a redundância), mas eu quero saber como eu chamo em uma sub (como um clique de botão) procedimento a partir de um formulário.

Eu tentei isso ...

Sub Command_Click()
    Call "pptCreator"
End Sub

Eu sei que é muito ruim, mas não tenho idéia de como trazer isso em um procedimento.

Foi útil?

Solução

Aqui estão algumas das diferentes maneiras que você pode chamar as coisas no Microsoft Access:

Para chamar uma sub forma ou função de um módulo

O sub na forma que você está chamando deve ser público, como em:

Public Sub DoSomething()
  MsgBox "Foo"
End Sub

Chamada do sub parecido com isto:

Call Forms("form1").DoSomething

O formulário deve ser aberto antes de fazer a chamada.

Para chamar um procedimento de evento, você deve chamar um procedimento público dentro do formulário e chamar o procedimento de evento dentro deste procedimento público.

Para chamar uma sub-rotina em um módulo de um formulário

Public Sub DoSomethingElse()
  MsgBox "Bar"
End Sub

... basta chamá-lo diretamente de seu procedimento de evento:

Call DoSomethingElse

Para chamar uma sub-rotina de uma forma sem o uso de um procedimento de evento

Se você quiser, você pode realmente ligar a função para o evento do controle de formulário sem ter que criar um procedimento de evento sob o controle. Para fazer isso, você primeiro precisa de uma função pública no módulo em vez de um sub, como este:

Public Function DoSomethingElse()
  MsgBox "Bar"
End Function

Então, se você tem um botão no formulário, em vez de colocar [Procedimento de evento] no evento OnClick da janela de propriedades, coloque o seguinte:

=DoSomethingElse()

Quando você clica no botão, ele irá chamar a função pública no módulo.

Para chamar uma função em vez de um procedimento

Se chamar um sub parecido com este:

Call MySub(MyParameter)

Em seguida, chamar uma função parecida com esta:

Result=MyFunction(MyFarameter)

onde O resultado é uma variável do tipo retornado pela função.

NOTA: Você não precisa sempre a palavra-chave chamada. Na maioria das vezes, você pode simplesmente chamar o sub como esta:

MySub(MyParameter)

Outras dicas

Se pptCreator é uma função / procedimento no mesmo arquivo, você poderia chamá-lo como abaixo

call pptCreator()

Chamar um Sub Procedimento - 3 técnica Way

Depois de ter um procedimento, se você criou ou que é parte da linguagem Visual Basic, você pode usá-lo. Usando um procedimento também é referido como chamá-lo.

Antes de chamar um procedimento, você deve primeiro localizar a seção do código em que você quiser usá-lo. Para chamar um procedimento simples, digite seu nome. Aqui está um exemplo:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"

msgbox strFullName
End Sub

Sub Exercise()
    CreateCustomer
End Sub

Além de usar o nome de um procedimento de chamá-lo, você também pode precedê-lo com a palavra-chave chamada. Aqui está um exemplo:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    Call CreateCustomer
End Sub

Ao chamar um procedimento, sem ou sem a palavra-chave chamada, você pode, opcionalmente, digite uma abertura e um parênteses de fechamento no lado direito de seu nome. Aqui está um exemplo:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    CreateCustomer()
End Sub

Procedimentos e Níveis de Acesso

Como um acesso variável, o acesso a um procedimento pode ser controlada por um nível de acesso. Um procedimento pode ser feito privada ou pública. Para especificar o nível de acesso de um procedimento, precedê-lo com o privado ou da palavra chave pública. Aqui está um exemplo:

Private Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

As regras que foram aplicadas a variáveis ??globais são os mesmos:

Privada: Se um procedimento é feito privada, ele pode ser chamado por outros procedimentos do mesmo módulo. Procedimentos de módulos externos não pode acessar procedimento tal.

Além disso, quando um procedimento é particular, o seu nome não aparece na caixa de diálogo Macros

Público:. Um procedimento criado como público pode ser chamado por procedimentos do mesmo módulo e por procedimentos de outros módulos

Além disso, se um procedimento foi criado como público, quando você acessa a caixa de diálogo Macros, suas aparece nome e você pode executá-lo de lá

Procedimentos em um módulo começar a ser útil e genérico quando você passar argumentos.

Por exemplo:

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

Agora pode exibir qualquer mensagem que é passada com a variável de cadeia chamado strMessage.

Para adicionar uma função para um novo botão no formulário: (e evitar o uso de macro para função de chamada)

Depois que você criou sua função (MyFunctionName Function ()) e você está na forma de exibição de design:

  1. Adicionar um novo botão (Eu não acho que você pode reatribuir um botão de idade - não tenho certeza embora).
  2. Quando a janela Assistente no botão abre clique em Cancelar.
  3. Vá para as propriedades do botão guia evento - On Click -. Campo
  4. No que os campos de menu suspenso, selecione:. Procedimento de evento
  5. Agora clique no botão ao lado do menu drop-down que tem ... nele e você será levado para um new Private Sub nos formulários Visual janela Básico.
  6. Nesse privado Tipo Sub: Chamada MyFunctionName
    Deve ser algo como isto:

Private Sub Command23_Click ()

Chamada MyFunctionName

End Sub

  1. Em seguida, basta salvá-lo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top