OVH Cloud OVH Cloud

utilisation fonction ou procédure

4 réponses
Avatar
C15
Bonjour à tous et toutes,

Il m'arrive régulièrement d'utiliser des procédures dans des formulaires.
Je travaille beaucoup par "imitation" de ce que je trouve sur ce site ou
dans la doc.

Par contre je n'ai pas bien compris la différence entre procédure et
fonction. Qui peut me l'expliquer clairement ?

Par ailleurs, j'ai lu dans un post du 10/10 qu'il était préférable pour une
plus grande rapidité de réponse du formulaire de mettre les procédures et/ou
les fonctions dans un module extérieur.
Comment faire et surtout comment les appeler par exemple sur un événement
tel que Sur activation ?


Merci de votre aide

A+

c15

4 réponses

Avatar
C15
Bonjour Raymond

1 Tout d'abord merci de ta réponse qui permet de différencier clairement
procédure et fonction.

2 Pour reprendre les exemples de l'aide, si je créé la procédure OpenOrders
ou la fonction FirstOf NextMonth dans un module extérieur comment puis-je
provoquer leur exécution sur un événement quelconque d'un formulaire ?

3 Un dossier joint bluedrop.gif accompagnait ta réponse. Est-ce normal,
d'autant plus qu'on ne peut y accéder ?


Merci encore

A+

C15
"Raymond" a écrit dans le message de
news:
Bonsoir.

je te donne l'aide en ligne qui doit tout comprendre:

À propos des procédures

Une procédure est une unité de code . Une procédure contient une série
d'instructions et de méthodes qui accomplissent une opération ou
calculent

une valeur. La procédure événementielle (procédure événementielle :
procédure exécutée automatiquement en réponse à un événement provoqué par
l'utilisateur ou le code du programme, ou déclenché par le système.)
suivante, par exemple, utilise la méthode OpenForm pour ouvrir le
formulaire

Commandes :
Private Sub OpenOrders_Click()
DoCmd.OpenForm "Orders"
End Sub

Il existe deux types de procédures : les procédures Sub (Contrairement à
une

procédure Function, une procédure Sub ne renvoie pas de valeur. Vous
commencez une procédure Sub par une instruction Sub et vous la terminez
par

une instruction End Sub.) et les procédures Function (procédure Function :
procédure qui renvoie une valeur et qui peut être utilisée dans une
expression. Vous déclarez une fonction à l'aide de l'instruction Function
et

vous la terminez à l'aide de l'instruction End Function.).

Procédures Sub

Les procédures Sub accomplissent une opération ou une série d'opérations
mais ne renvoient aucune valeur. Vous pouvez créer vos propres procédures
Sub ou utiliser les modèles de procédures événementielles créés pour vous
par Microsoft Access.

Chaque formulaire et chaque état de votre base de données possèdent un
module de formulaire ou un module d'état intégré qui contient les modèles
de

procédures événementielles. Vous pouvez ajouter du code qui s'exécute en
réponse aux événements se produisant dans le formulaire, l'état ou les
contrôles du formulaire ou de l'état. Lorsque Microsoft Access apprend
qu'un

événement s'est produit dans un formulaire, un état ou un contrôle, il
exécute automatiquement la procédure événementielle nommée pour l'objet et
l'événement. Vous pouvez, par exemple, écrire une procédure événementielle
qui active une zone de texte Nom époux lorsque l'utilisateur active une
case

à cocher Marié.

De nombreux Assistants (par exemple, l'Assistant Bouton de commande) qui
créent des objets créent également des procédures événementielles pour
l'objet. Vous pouvez examiner ces procédures événementielles pour voir des
exemples de fonctionnement des procédures.

Procédures Function

Les procédures Function (souvent appelées simplement fonctions) renvoient
une valeur, telle que le résultat d'un calcul. Microsoft Visual Basic
comporte de nombreuses fonctions intégrées ; la fonction Maintenant (Now),
par exemple, renvoie la date et l'heure en cours. En plus de ces fonctions
intégrées, vous pouvez créer vos propres fonctions personnalisées.

Comme les fonctions renvoient des valeurs, vous pouvez les utiliser dans
des

expressions (expression : toute combinaison d'opérateurs mathématiques ou
logiques, de constantes, de fonctions, de noms de champs, de contrôles et
de

propriétés qui s'évalue pour donner une seule valeur. Les expressions
peuvent réaliser des calculs, manipuler des caractères ou tester des
données.). Vous pouvez utiliser des fonctions dans des expressions en de
nombreux endroits dans Microsoft Access, y compris dans une instruction ou
une méthode Visual Basic, dans de nombreux paramètres de propriété ou dans
l'expression Critères d'un filtre ou d'une requête.
Ci-dessous figure un exemple de procédure Function ,
PremierDuMoisProchain,

qui renvoie la date du premier jour du mois suivant la date en cours :
Function FirstOfNextMonth()
FirstOfNextMonth = DateSerial(Year(Now), Month(Now) + 1, 1)
End Function

Après avoir créé cette fonction, vous pouvez l'utiliser dans une
expression

où que ce soit dans Microsoft Access. Vous pouvez, par exemple, spécifier
qu'une zone de texte doit afficher le premier jour du mois qui suit la
date

en cours comme valeur par défaut en paramétrant la propriété
ValeurParDéfaut

(DefaultValue) du contrôle zone de texte sur l'expression suivante dans la
feuille des propriétés :

Remarque Pour utiliser une fonction comme paramètre de propriété, la
fonction doit se trouver dans le module de formulaire ou d'état , ou dans
un

module standard .Vous ne pouvez pas utiliser une fonction dans un module
de

classe qui n'est pas associé à un formulaire ou un état comme paramètre
de

propriété de formulaire ou d'état.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"C15" a écrit dans le message de
news:3f899253$0$15440$
Bonjour à tous et toutes,

Il m'arrive régulièrement d'utiliser des procédures dans des
formulaires.


Je travaille beaucoup par "imitation" de ce que je trouve sur ce site ou
dans la doc.

Par contre je n'ai pas bien compris la différence entre procédure et
fonction. Qui peut me l'expliquer clairement ?

Par ailleurs, j'ai lu dans un post du 10/10 qu'il était préférable pour
une

plus grande rapidité de réponse du formulaire de mettre les procédures
et/ou

les fonctions dans un module extérieur.
Comment faire et surtout comment les appeler par exemple sur un
événement


tel que Sur activation ?


Merci de votre aide

A+

c15







Avatar
Raymond
Bonjour.

2- Il suffit d'indiquer le nom de la procédure ou de la fonction suivie des
arguments. La commande facultative est call.
Call Maprocédure (argument1, argument2,....)
Call Mafonction (argument1, argument2,....)
Maprocédure argument1, argument2,....
Mafonction argument1, argument2,....

3-je n'ai jamais joint de pièce et ce doit être un coup de swen qui sévit
encore sur les news. supprimer le message qui contient cette pièce jointe.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"C15" a écrit dans le message de
news:3f8a46ce$0$15436$
Bonjour Raymond

1 Tout d'abord merci de ta réponse qui permet de différencier clairement
procédure et fonction.

2 Pour reprendre les exemples de l'aide, si je créé la procédure
OpenOrders

ou la fonction FirstOf NextMonth dans un module extérieur comment puis-je
provoquer leur exécution sur un événement quelconque d'un formulaire ?

3 Un dossier joint bluedrop.gif accompagnait ta réponse. Est-ce normal,
d'autant plus qu'on ne peut y accéder ?


Merci encore

A+

C15
"Raymond" a écrit dans le message de
news:
Bonsoir.

je te donne l'aide en ligne qui doit tout comprendre:

À propos des procédures

Une procédure est une unité de code . Une procédure contient une série
d'instructions et de méthodes qui accomplissent une opération ou
calculent

une valeur. La procédure événementielle (procédure événementielle :
procédure exécutée automatiquement en réponse à un événement provoqué
par


l'utilisateur ou le code du programme, ou déclenché par le système.)
suivante, par exemple, utilise la méthode OpenForm pour ouvrir le
formulaire

Commandes :
Private Sub OpenOrders_Click()
DoCmd.OpenForm "Orders"
End Sub

Il existe deux types de procédures : les procédures Sub (Contrairement à
une

procédure Function, une procédure Sub ne renvoie pas de valeur. Vous
commencez une procédure Sub par une instruction Sub et vous la terminez
par

une instruction End Sub.) et les procédures Function (procédure Function
:


procédure qui renvoie une valeur et qui peut être utilisée dans une
expression. Vous déclarez une fonction à l'aide de l'instruction
Function


et
vous la terminez à l'aide de l'instruction End Function.).

Procédures Sub

Les procédures Sub accomplissent une opération ou une série d'opérations
mais ne renvoient aucune valeur. Vous pouvez créer vos propres
procédures


Sub ou utiliser les modèles de procédures événementielles créés pour
vous


par Microsoft Access.

Chaque formulaire et chaque état de votre base de données possèdent un
module de formulaire ou un module d'état intégré qui contient les
modèles


de
procédures événementielles. Vous pouvez ajouter du code qui s'exécute en
réponse aux événements se produisant dans le formulaire, l'état ou les
contrôles du formulaire ou de l'état. Lorsque Microsoft Access apprend
qu'un

événement s'est produit dans un formulaire, un état ou un contrôle, il
exécute automatiquement la procédure événementielle nommée pour l'objet
et


l'événement. Vous pouvez, par exemple, écrire une procédure
événementielle


qui active une zone de texte Nom époux lorsque l'utilisateur active une
case

à cocher Marié.

De nombreux Assistants (par exemple, l'Assistant Bouton de commande) qui
créent des objets créent également des procédures événementielles pour
l'objet. Vous pouvez examiner ces procédures événementielles pour voir
des


exemples de fonctionnement des procédures.

Procédures Function

Les procédures Function (souvent appelées simplement fonctions)
renvoient


une valeur, telle que le résultat d'un calcul. Microsoft Visual Basic
comporte de nombreuses fonctions intégrées ; la fonction Maintenant
(Now),


par exemple, renvoie la date et l'heure en cours. En plus de ces
fonctions


intégrées, vous pouvez créer vos propres fonctions personnalisées.

Comme les fonctions renvoient des valeurs, vous pouvez les utiliser dans
des

expressions (expression : toute combinaison d'opérateurs mathématiques
ou


logiques, de constantes, de fonctions, de noms de champs, de contrôles
et


de
propriétés qui s'évalue pour donner une seule valeur. Les expressions
peuvent réaliser des calculs, manipuler des caractères ou tester des
données.). Vous pouvez utiliser des fonctions dans des expressions en de
nombreux endroits dans Microsoft Access, y compris dans une instruction
ou


une méthode Visual Basic, dans de nombreux paramètres de propriété ou
dans


l'expression Critères d'un filtre ou d'une requête.
Ci-dessous figure un exemple de procédure Function ,
PremierDuMoisProchain,

qui renvoie la date du premier jour du mois suivant la date en cours :
Function FirstOfNextMonth()
FirstOfNextMonth = DateSerial(Year(Now), Month(Now) + 1, 1)
End Function

Après avoir créé cette fonction, vous pouvez l'utiliser dans une
expression

où que ce soit dans Microsoft Access. Vous pouvez, par exemple,
spécifier


qu'une zone de texte doit afficher le premier jour du mois qui suit la
date

en cours comme valeur par défaut en paramétrant la propriété
ValeurParDéfaut

(DefaultValue) du contrôle zone de texte sur l'expression suivante dans
la


feuille des propriétés :

Remarque Pour utiliser une fonction comme paramètre de propriété, la
fonction doit se trouver dans le module de formulaire ou d'état , ou
dans


un
module standard .Vous ne pouvez pas utiliser une fonction dans un module
de

classe qui n'est pas associé à un formulaire ou un état comme paramètre
de

propriété de formulaire ou d'état.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"C15" a écrit dans le message de
news:3f899253$0$15440$
Bonjour à tous et toutes,

Il m'arrive régulièrement d'utiliser des procédures dans des
formulaires.


Je travaille beaucoup par "imitation" de ce que je trouve sur ce site
ou



dans la doc.

Par contre je n'ai pas bien compris la différence entre procédure et
fonction. Qui peut me l'expliquer clairement ?

Par ailleurs, j'ai lu dans un post du 10/10 qu'il était préférable
pour



une
plus grande rapidité de réponse du formulaire de mettre les procédures
et/ou

les fonctions dans un module extérieur.
Comment faire et surtout comment les appeler par exemple sur un
événement


tel que Sur activation ?


Merci de votre aide

A+

c15











Avatar
C15
Bonsoir Raymond,

Mercie de ta réponse.

Au fait, Swen c'est Loft 2 ou Star'Ac ?

A+

c15
"Raymond" a écrit dans le message de
news:
Bonjour.

2- Il suffit d'indiquer le nom de la procédure ou de la fonction suivie
des

arguments. La commande facultative est call.
Call Maprocédure (argument1, argument2,....)
Call Mafonction (argument1, argument2,....)
Maprocédure argument1, argument2,....
Mafonction argument1, argument2,....

3-je n'ai jamais joint de pièce et ce doit être un coup de swen qui sévit
encore sur les news. supprimer le message qui contient cette pièce jointe.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"C15" a écrit dans le message de
news:3f8a46ce$0$15436$
Bonjour Raymond

1 Tout d'abord merci de ta réponse qui permet de différencier clairement
procédure et fonction.

2 Pour reprendre les exemples de l'aide, si je créé la procédure
OpenOrders

ou la fonction FirstOf NextMonth dans un module extérieur comment
puis-je


provoquer leur exécution sur un événement quelconque d'un formulaire ?

3 Un dossier joint bluedrop.gif accompagnait ta réponse. Est-ce normal,
d'autant plus qu'on ne peut y accéder ?


Merci encore

A+

C15
"Raymond" a écrit dans le message de
news:
Bonsoir.

je te donne l'aide en ligne qui doit tout comprendre:

À propos des procédures

Une procédure est une unité de code . Une procédure contient une série
d'instructions et de méthodes qui accomplissent une opération ou
calculent

une valeur. La procédure événementielle (procédure événementielle :
procédure exécutée automatiquement en réponse à un événement provoqué
par


l'utilisateur ou le code du programme, ou déclenché par le système.)
suivante, par exemple, utilise la méthode OpenForm pour ouvrir le
formulaire

Commandes :
Private Sub OpenOrders_Click()
DoCmd.OpenForm "Orders"
End Sub

Il existe deux types de procédures : les procédures Sub (Contrairement
à



une
procédure Function, une procédure Sub ne renvoie pas de valeur. Vous
commencez une procédure Sub par une instruction Sub et vous la
terminez



par
une instruction End Sub.) et les procédures Function (procédure
Function



:
procédure qui renvoie une valeur et qui peut être utilisée dans une
expression. Vous déclarez une fonction à l'aide de l'instruction
Function


et
vous la terminez à l'aide de l'instruction End Function.).

Procédures Sub

Les procédures Sub accomplissent une opération ou une série
d'opérations



mais ne renvoient aucune valeur. Vous pouvez créer vos propres
procédures


Sub ou utiliser les modèles de procédures événementielles créés pour
vous


par Microsoft Access.

Chaque formulaire et chaque état de votre base de données possèdent un
module de formulaire ou un module d'état intégré qui contient les
modèles


de
procédures événementielles. Vous pouvez ajouter du code qui s'exécute
en



réponse aux événements se produisant dans le formulaire, l'état ou les
contrôles du formulaire ou de l'état. Lorsque Microsoft Access apprend
qu'un

événement s'est produit dans un formulaire, un état ou un contrôle, il
exécute automatiquement la procédure événementielle nommée pour
l'objet



et
l'événement. Vous pouvez, par exemple, écrire une procédure
événementielle


qui active une zone de texte Nom époux lorsque l'utilisateur active
une



case
à cocher Marié.

De nombreux Assistants (par exemple, l'Assistant Bouton de commande)
qui



créent des objets créent également des procédures événementielles pour
l'objet. Vous pouvez examiner ces procédures événementielles pour voir
des


exemples de fonctionnement des procédures.

Procédures Function

Les procédures Function (souvent appelées simplement fonctions)
renvoient


une valeur, telle que le résultat d'un calcul. Microsoft Visual Basic
comporte de nombreuses fonctions intégrées ; la fonction Maintenant
(Now),


par exemple, renvoie la date et l'heure en cours. En plus de ces
fonctions


intégrées, vous pouvez créer vos propres fonctions personnalisées.

Comme les fonctions renvoient des valeurs, vous pouvez les utiliser
dans



des
expressions (expression : toute combinaison d'opérateurs mathématiques
ou


logiques, de constantes, de fonctions, de noms de champs, de contrôles
et


de
propriétés qui s'évalue pour donner une seule valeur. Les expressions
peuvent réaliser des calculs, manipuler des caractères ou tester des
données.). Vous pouvez utiliser des fonctions dans des expressions en
de



nombreux endroits dans Microsoft Access, y compris dans une
instruction



ou
une méthode Visual Basic, dans de nombreux paramètres de propriété ou
dans


l'expression Critères d'un filtre ou d'une requête.
Ci-dessous figure un exemple de procédure Function ,
PremierDuMoisProchain,

qui renvoie la date du premier jour du mois suivant la date en cours :
Function FirstOfNextMonth()
FirstOfNextMonth = DateSerial(Year(Now), Month(Now) + 1, 1)
End Function

Après avoir créé cette fonction, vous pouvez l'utiliser dans une
expression

où que ce soit dans Microsoft Access. Vous pouvez, par exemple,
spécifier


qu'une zone de texte doit afficher le premier jour du mois qui suit la
date

en cours comme valeur par défaut en paramétrant la propriété
ValeurParDéfaut

(DefaultValue) du contrôle zone de texte sur l'expression suivante
dans



la
feuille des propriétés :

Remarque Pour utiliser une fonction comme paramètre de propriété, la
fonction doit se trouver dans le module de formulaire ou d'état , ou
dans


un
module standard .Vous ne pouvez pas utiliser une fonction dans un
module



de
classe qui n'est pas associé à un formulaire ou un état comme
paramètre



de
propriété de formulaire ou d'état.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"C15" a écrit dans le message de
news:3f899253$0$15440$
Bonjour à tous et toutes,

Il m'arrive régulièrement d'utiliser des procédures dans des
formulaires.


Je travaille beaucoup par "imitation" de ce que je trouve sur ce
site




ou
dans la doc.

Par contre je n'ai pas bien compris la différence entre procédure et
fonction. Qui peut me l'expliquer clairement ?

Par ailleurs, j'ai lu dans un post du 10/10 qu'il était préférable
pour



une
plus grande rapidité de réponse du formulaire de mettre les
procédures




et/ou
les fonctions dans un module extérieur.
Comment faire et surtout comment les appeler par exemple sur un
événement


tel que Sur activation ?


Merci de votre aide

A+

c15














Avatar
Raymond
Bonsoir C15.
si seulement c'était ça !

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"C15" a écrit dans le message de
news:3f8ae5c1$0$15433$
Bonsoir Raymond,

Mercie de ta réponse.

Au fait, Swen c'est Loft 2 ou Star'Ac ?

A+