OVH Cloud OVH Cloud

Module

5 réponses
Avatar
dfcena
Bonjour

J'ai plusieurs ligne de code que j'ai dupliquer =E0=20
l'int=E9rieur de proc=E9dures de plusieurs formulaires
Afin de modifier =E0 chaque fois toutes les proc=E9dures des=20
formulaires je souhaiterai faire un module et appeler ce=20
module dans chaque proc=E9dure de mon formulaire (comme je=20
le fait d=E9j=E0 avec des macros)

J'ai copi=E9 mes lignes d'une de mes proc=E9dures d'un des=20
formulaires que j'ai mis dans un module
le module n'a pas de d=E9clation de variable puique c'est=20
tout simplement:=20
Module
Sub verif
Docmd.openform "monform"
If....
End if
docmd.close acform, "monform"
end sub

Est-ce correct?
Que dois-je faire pour appeler mon module =E0 parti de mon=20
formulaire?

5 réponses

Avatar
Raymond [mvp]
Bonjour.

tu peux utiliser ce module en l'appelant tout simplement par:
verif
mais que contient le if ? car si tu as des fonctions de formulaire, ça ne
fonctionnera pas. le Me ne sera pas autorisé. s'il te faut atteindre ton
formulaire il faudra passer par le formulaire actif de l'objet Screen ou
l'objet Forms ou passer la référence au module.
Donc à voir.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"dfcena" a écrit dans le message de
news:2a0401c48e98$dbb482f0$
Bonjour

J'ai plusieurs ligne de code que j'ai dupliquer à
l'intérieur de procédures de plusieurs formulaires
Afin de modifier à chaque fois toutes les procédures des
formulaires je souhaiterai faire un module et appeler ce
module dans chaque procédure de mon formulaire (comme je
le fait déjà avec des macros)

J'ai copié mes lignes d'une de mes procédures d'un des
formulaires que j'ai mis dans un module
le module n'a pas de déclation de variable puique c'est
tout simplement:
Module
Sub verif
Docmd.openform "monform"
If....
End if
docmd.close acform, "monform"
end sub

Est-ce correct?
Que dois-je faire pour appeler mon module à parti de mon
formulaire?
Avatar
dfcena
voila ce que j'ai mis dans mon module
-----Message d'origine-----
Bonjour.

tu peux utiliser ce module en l'appelant tout simplement
par:

verif
mais que contient le if ? car si tu as des fonctions de
formulaire, ça ne

fonctionnera pas. le Me ne sera pas autorisé. s'il te
faut atteindre ton

formulaire il faudra passer par le formulaire actif de
l'objet Screen ou

l'objet Forms ou passer la référence au module.
Donc à voir.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"dfcena" a écrit
dans le message de

news:2a0401c48e98$dbb482f0$
Bonjour

J'ai plusieurs ligne de code que j'ai dupliquer à
l'intérieur de procédures de plusieurs formulaires
Afin de modifier à chaque fois toutes les procédures des
formulaires je souhaiterai faire un module et appeler ce
module dans chaque procédure de mon formulaire (comme je
le fait déjà avec des macros)

J'ai copié mes lignes d'une de mes procédures d'un des
formulaires que j'ai mis dans un module
le module n'a pas de déclation de variable puique c'est
tout simplement:
Module
Sub verif
Docmd.openform "monform"
If....
End if
docmd.close acform, "monform"
end sub

Est-ce correct?
Que dois-je faire pour appeler mon module à parti de mon
formulaire?


.



Avatar
dfcena
Voila ce que j'ai mis dans mon module
Sub verif
Docmd.openform "Monform"
Forms![Monform]![monctrl].SetFocus
Forms![Monform]![ monctrl1].Locked = False
If Forms![Monform]![ctrl] = 1 Then
If msgbox("Voulez-vous imprimer le BL?", vbYesNo) =
vbYes Then
DoCmd.OpenReport "Bon de livraison",
acViewPreview, , "[N°BL] =Forms![Monform]![N°BL]"
End If
End If
DoCmd.Close acForm, "Monform "
End If
End sub
comment j'appelle cette procédure de mes formulaires
j'ai essayé de mettre
Private Sub Commande2_Click()
If .......
...
Else
verif
end if

mais il me mets
erreur de compilation
Variable ou procédure attendue, et non un module




-----Message d'origine-----
Bonjour.

tu peux utiliser ce module en l'appelant tout simplement
par:

verif
mais que contient le if ? car si tu as des fonctions de
formulaire, ça ne

fonctionnera pas. le Me ne sera pas autorisé. s'il te
faut atteindre ton

formulaire il faudra passer par le formulaire actif de
l'objet Screen ou

l'objet Forms ou passer la référence au module.
Donc à voir.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"dfcena" a écrit
dans le message de

news:2a0401c48e98$dbb482f0$
Bonjour

J'ai plusieurs ligne de code que j'ai dupliquer à
l'intérieur de procédures de plusieurs formulaires
Afin de modifier à chaque fois toutes les procédures des
formulaires je souhaiterai faire un module et appeler ce
module dans chaque procédure de mon formulaire (comme je
le fait déjà avec des macros)

J'ai copié mes lignes d'une de mes procédures d'un des
formulaires que j'ai mis dans un module
le module n'a pas de déclation de variable puique c'est
tout simplement:
Module
Sub verif
Docmd.openform "monform"
If....
End if
docmd.close acform, "monform"
end sub

Est-ce correct?
Que dois-je faire pour appeler mon module à parti de mon
formulaire?


.



Avatar
Raymond [mvp]
Mais encore ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"dfcena" a écrit dans le message de
news:08da01c48ea1$e6e9fe30$
voila ce que j'ai mis dans mon module




-----Message d'origine-----
Bonjour.

tu peux utiliser ce module en l'appelant tout simplement
par:

verif
mais que contient le if ? car si tu as des fonctions de
formulaire, ça ne

fonctionnera pas. le Me ne sera pas autorisé. s'il te
faut atteindre ton

formulaire il faudra passer par le formulaire actif de
l'objet Screen ou

l'objet Forms ou passer la référence au module.
Donc à voir.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"dfcena" a écrit
dans le message de

news:2a0401c48e98$dbb482f0$
Bonjour

J'ai plusieurs ligne de code que j'ai dupliquer à
l'intérieur de procédures de plusieurs formulaires
Afin de modifier à chaque fois toutes les procédures des
formulaires je souhaiterai faire un module et appeler ce
module dans chaque procédure de mon formulaire (comme je
le fait déjà avec des macros)

J'ai copié mes lignes d'une de mes procédures d'un des
formulaires que j'ai mis dans un module
le module n'a pas de déclation de variable puique c'est
tout simplement:
Module
Sub verif
Docmd.openform "monform"
If....
End if
docmd.close acform, "monform"
end sub

Est-ce correct?
Que dois-je faire pour appeler mon module à parti de mon
formulaire?


.



Avatar
Raymond [mvp]
Il serait préférable de ne pas mettre les noms en dur dans un module mais de
les passer en paramètre ce qui permet de faciliter la maintenance.
dans ton formulaire tu appelles ta sub comme ceci par exemple:
Private Sub Commande2_Click()
If ....... Then
.................
Else
Verif "Monform"
end if
End Sub

dans le module tu mets ta sub comme ceci: (ne change pas le nom du module
créé par access, ça n'a aucune importance)

Sub Verif(FormName As String)
Dim Frm As Form
DoCmd.OpenForm FormName
Set Frm = Forms(FormName)
Frm("monctrl").SetFocus
Frm("monctrl1").Locked = False
If Frm("ctrl") = 1 Then
If MsgBox("Voulez-vous imprimer le BL?", vbYesNo) = vbYes Then
DoCmd.OpenReport "Bon de livraison", acViewPreview, , "[N°BL] ="
& Frm("N°BL")
End If
End If
DoCmd.Close acForm, Frm.Name
Set Frm = Nothing
End Sub

ce qui permet de ne pas nommer le formulaire pour qu'il serve à n'importe
quel appel. Si tu peux faire ainsi pour tes contrôles ce serait mieux.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"dfcena" a écrit dans le message de
news:08f401c48ea2$dea94d60$
Voila ce que j'ai mis dans mon module
Sub verif
Docmd.openform "Monform"
Forms![Monform]![monctrl].SetFocus
Forms![Monform]![ monctrl1].Locked = False
If Forms![Monform]![ctrl] = 1 Then
If msgbox("Voulez-vous imprimer le BL?", vbYesNo) vbYes Then
DoCmd.OpenReport "Bon de livraison",
acViewPreview, , "[N°BL] =Forms![Monform]![N°BL]"
End If
End If
DoCmd.Close acForm, "Monform "
End If
End sub
comment j'appelle cette procédure de mes formulaires
j'ai essayé de mettre
Private Sub Commande2_Click()
If .......
...
Else
verif
end if

mais il me mets
erreur de compilation
Variable ou procédure attendue, et non un module