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?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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?
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:2a0401c48e98$dbb482f0$a501280a@phx.gbl...
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?
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?
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?
.
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" <anonymous@discussions.microsoft.com> a écrit
dans le message de
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?
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?
.
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?
.
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" <anonymous@discussions.microsoft.com> a écrit
dans le message de
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?
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?
.
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?
.
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:08da01c48ea1$e6e9fe30$a401280a@phx.gbl...
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" <anonymous@discussions.microsoft.com> a écrit
dans le message de
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?
-- @+ 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?
.
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
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:08f401c48ea2$dea94d60$a401280a@phx.gbl...
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
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