Question

Je sais que cela est une question simple pour quelqu'un là-bas, mais je ne l'ai jamais vraiment utilisé le module de fonction du tout parce que je ne comprenais pas ce qu'ils étaient.

J'ai donc tout un tas de choses que je peux utiliser pour (réduire la redondance), mais je veux savoir comment je l'appelle dans une procédure secondaire (comme un bouton clic) à partir d'un formulaire.

J'ai essayé ...

Sub Command_Click()
    Call "pptCreator"
End Sub

Je sais que c'est assez mauvais, mais je ne sais pas comment mettre cela en une procédure.

Était-ce utile?

La solution

Voici quelques-unes des différentes façons dont vous pouvez appeler les choses dans Microsoft Access:

Pour appeler un sous-fonction ou sous forme d'un module

Le sous la forme que vous appelez doit être public, comme dans:

Public Sub DoSomething()
  MsgBox "Foo"
End Sub

Appelez le sous comme ceci:

Call Forms("form1").DoSomething

Le formulaire doit être ouvert avant de faire l'appel.

Pour appeler une procédure d'événement, vous devez appeler une procédure publique dans la forme, et appeler la procédure d'événement au sein de cette procédure publique.

pour appeler un sous-programme dans un module d'un formulaire

Public Sub DoSomethingElse()
  MsgBox "Bar"
End Sub

... il suffit d'appeler directement à partir de votre procédure d'événement:

Call DoSomethingElse

Pour appeler un sous-programme à partir d'un formulaire sans utiliser une procédure d'événement

Si vous voulez, vous pouvez réellement lier la fonction à l'épreuve de contrôle de formulaire sans avoir à créer une procédure d'événement sous le contrôle. Pour ce faire, vous devez d'abord une fonction publique dans le module au lieu d'un sous, comme ceci:

Public Function DoSomethingElse()
  MsgBox "Bar"
End Function

Alors, si vous avez un bouton sur la forme, au lieu de mettre [Procédure événementielle] dans l'événement OnClick de la fenêtre de la propriété, mettez ceci:

=DoSomethingElse()

Lorsque vous cliquez sur le bouton, il appellera la fonction publique dans le module.

Pour appeler une fonction au lieu d'une procédure

Si vous appelez un sous ressemble à ceci:

Call MySub(MyParameter)

Ensuite, appeler une fonction ressemble à ceci:

Result=MyFunction(MyFarameter)

où résulte une variable de type retourné par la fonction.

Remarque: Vous ne toujours pas besoin du mot-clé d'appel. La plupart du temps, vous pouvez simplement appeler le sous comme ceci:

MySub(MyParameter)

Autres conseils

si pptCreator est une fonction / procédure dans le même fichier, vous pouvez l'appeler comme ci-dessous

call pptCreator()

L'appel d'une procédure Sub - technique 3 voies

Une fois que vous avez une procédure, si vous l'avez créé ou il fait partie de la langue Visual Basic vous pouvez l'utiliser. En utilisant une procédure est également appelée l'appeler.

Avant d'appeler une procédure, vous devez d'abord localiser la section de code dans lequel vous voulez l'utiliser. Pour appeler une procédure simple, tapez son nom. Voici un exemple:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"

msgbox strFullName
End Sub

Sub Exercise()
    CreateCustomer
End Sub

En plus d'utiliser le nom d'une procédure d'appel, vous pouvez également précéder avec le mot-clé d'appel. Voici un exemple:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    Call CreateCustomer
End Sub

Lors de l'appel d'une procédure, sans ou sans le mot-clé d'appel, vous pouvez saisir le cas échéant une ouverture et une parenthèse de fermeture sur le côté droit de son nom. Voici un exemple:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    CreateCustomer()
End Sub

Procédures et niveaux d'accès

Comme un accès à une variable, l'accès à une procédure peut être contrôlé par un niveau d'accès. Une procédure peut être privé ou public. Pour spécifier le niveau d'accès d'une procédure, faites précéder avec le privé ou le mot-clé publique. Voici un exemple:

Private Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub
  

Les règles qui ont été appliquées à des variables globales sont les mêmes:

     

Privé: Si une procédure est privatisé, il peut être appelé par d'autres procédures du même module. Les procédures de modules externes ne peuvent accéder à une telle procédure.

     

En outre, lorsqu'une procédure est privée, son nom ne figure pas dans la boîte de dialogue Macros

     

Public. Une procédure créée en public peut être appelé par des procédures du même module et par des procédures d'autres modules

     

En outre, si une procédure a été créée comme public, lorsque vous accédez à la boîte de dialogue Macros, son nom apparaît et vous pouvez l'exécuter à partir de là

Procédures dans un module commencent à être utile et générique lorsque vous passez dans les arguments.

Par exemple:

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

Peut maintenant afficher tout message qui est transmis avec la variable de chaîne appelée strMessage.

Pour ajouter une fonction à un nouveau bouton sur votre formulaire: (et évitez d'utiliser la fonction macro pour appeler)

Après avoir créé votre fonction (Fonction MyFunctionName ()) et vous êtes sous forme vue de la conception:

  1. Ajouter un nouveau bouton (je ne pense pas que vous pouvez réattribuer un vieux bouton - pas sûr cependant).
  2. Lorsque le bouton fenêtre de l'assistant ouvre, cliquez sur Annuler.
  3. Accédez aux propriétés de l'événement Bouton Tab - Le clic -. Champ
  4. Dans ce champs menu déroulant, sélectionnez:. Procédure de l'événement
  5. Cliquez maintenant sur le bouton menu déroulant à côté vers le bas qui a ... en elle et vous serez amené à un nouveau Private Sub dans les formes fenêtre Visual Basic.
  6. Dans ce type privé sous: Appel MyFunctionName
    Il devrait ressembler à ceci:

Private Sub Command23_Click ()

Appel MyFunctionName

End Sub

  1. Ensuite, il suffit enregistrer.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top