Je sais que la question est simple pour quelqu'un, mais je n'ai jamais vraiment utilisé de module de fonction car je ne comprenais pas ce que c'était.
Donc, j'ai beaucoup de choses que je peux utiliser pour (réduire la redondance), mais je veux savoir comment j'appelle dans une procédure secondaire (comme un clic de bouton) à partir d'un formulaire.
J'ai essayé ça ...
Sub Command_Click()
Call "pptCreator"
End Sub
Je sais que c'est très grave, mais je ne sais pas comment intégrer cela dans une procédure.
Voici différentes manières d’appeler des choses dans Microsoft Access:
Le sous-formulaire dans le formulaire 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 événementielle, vous devez appeler une procédure publique dans le formulaire et appeler la procédure événementielle dans cette procédure publique.
Public Sub DoSomethingElse()
MsgBox "Bar"
End Sub
... appelez-le directement depuis votre procédure événementielle:
Call DoSomethingElse
Si vous le souhaitez, vous pouvez réellement lier la fonction à l'événement du contrôle de formulaire sans avoir à créer une procédure d'événement sous le contrôle. Pour ce faire, vous avez d’abord besoin d’une fonction publique dans le module au lieu d’un sous-objet, comme ceci:
Public Function DoSomethingElse()
MsgBox "Bar"
End Function
Ensuite, si vous avez un bouton sur le formulaire, au lieu de mettre [Procédure événementielle] dans l'événement OnClick de la fenêtre de propriété, placez ceci:
=DoSomethingElse()
Lorsque vous cliquez sur le bouton, la fonction public du module est appelée.
Si appeler un sous ressemble à ceci:
Call MySub(MyParameter)
Puis appeler une fonction ressemble à ceci:
Result=MyFunction(MyFarameter)
où Résultat est une variable de type renvoyée par la fonction.
NOTE: Vous n'avez pas toujours besoin du mot clé Call. La plupart du temps, vous pouvez simplement appeler le sous-marin comme ceci:
MySub(MyParameter)
si pptCreator est une fonction/procédure dans le même fichier, vous pouvez l'appeler comme suit
call pptCreator()
Appel d'une procédure secondaire - technique 3 voies
Une fois que vous avez une procédure, que vous l'ayez créée ou qu'elle fasse partie du langage Visual Basic, vous pouvez l'utiliser. L'utilisation d'une procédure est également appelée l'appelant.
Avant d'appeler une procédure, vous devez d'abord localiser la section de code dans laquelle vous souhaitez 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 pour l'appeler, vous pouvez également la faire précéder du mot-clé Call. Voici un exemple:
Sub CreateCustomer()
Dim strFullName As String
strFullName = "Paul Bertrand Yamaguchi"
End Sub
Sub Exercise()
Call CreateCustomer
End Sub
Lorsque vous appelez une procédure, sans ou sans le mot clé Call, vous pouvez éventuellement taper une parenthèse ouvrante et une souris fermante à droite 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
A l'instar d'un accès variable, l'accès à une procédure peut être contrôlé par un niveau d'accès. Une procédure peut être rendue privée ou publique. Pour spécifier le niveau d'accès d'une procédure, faites-le précéder du mot clé Privé ou du mot clé Public. Voici un exemple:
Private Sub CreateCustomer()
Dim strFullName As String
strFullName = "Paul Bertrand Yamaguchi"
End Sub
Les règles qui ont été appliquées aux variables globales sont les mêmes:
Privé: Si une procédure est rendue privée, elle peut être appelée par d'autres procédures du même module. Les procédures de modules externes ne peuvent pas accéder à une telle procédure.
De même, lorsqu'une procédure est privée, son nom n'apparaît pas dans la boîte de dialogue Macros.
Public: Une procédure créée en tant que public peut être appelée par les procédures du même module et par les procédures d'autres modules.
De même, si une procédure a été créée en tant que publique, lorsque vous accédez à la boîte de dialogue Macros, son nom apparaît et vous pouvez l'exécuter à partir de là.
Les procédures d'un module commencent à être utiles et génériques lorsque vous transmettez des arguments.
Par exemple:
Public Function DoSomethingElse(strMessage As String)
MsgBox strMessage
End Function
Peut maintenant afficher n'importe quel message transmis avec la variable de chaîne appelée strMessage.
Pour ajouter une fonction à un nouveau bouton de votre formulaire: (et évitez d’utiliser une macro pour appeler une fonction)
Après avoir créé votre fonction (Function MyFunctionName ()) et que vous êtes en mode Création de formulaire:
Private Sub Command23_Click ()
Appelez MyFunctionName
End Sub