OVH Cloud OVH Cloud

Quelle différence un menu contextuel et un bouton sur un formulaire?

4 réponses
Avatar
Codial
Bonjour

voilà au départ j'ai un bouton sur un form qui appelle une fonction d'un
module.
Cette fonction ouvre un form avec un champ pour saisir un numéro de document
à rechercher.

Sur ce form j'ai un bouton (Ok) qui valide la recherche avec le code
suivant:

If Estvide(Me.NumDUM) Then
MsgBox "Vous devez saisir le numéro de DUM", vbInformation,
"Information"
Me.NumDUM.SetFocus
Else
'Rechercher le numéro de M6 dans la table DUM
Me.RecordsetClone.FindFirst "[N°DUM] = '" & Me![NumDUM] & "'"
If Me.RecordsetClone.NoMatch Then
MsgBox "Ce numéro de DUM est inconnu... ", vbCritical, "Non
trouvé"
Else
Me.Bookmark = Me.RecordsetClone.Bookmark
'Afficher la M6 sur le formulaire M6
'========================
Forms!F_M6.RecordsetClone.FindFirst "[N°M6] = " & Me.N°M6
Forms!F_M6.Bookmark = Forms!F_M6.RecordsetClone.Bookmark
'Rechercher le DUM dans le sous-formulaire du form M6
'======================================
Forms!F_M6!sous_FM6.SetFocus
(1) Forms!F_M6!sous_FM6.Form.RecordsetClone.FindFirst "[N°DUM] = '" &
Me![NumDUM] & "'"
Forms!F_M6!sous_FM6.Form.Bookmark =
Forms!F_M6!sous_FM6.Form.RecordsetClone.Bookmark

DoCmd.Close acForm, "F_Recherche_DUM"

End If
End If

et celà, grace à 3stone fonctionne très bien avec le bouton Recherche du
form..

Je me suis dis je vais remplacer tous mes boutons, dont celui de ma
recherche, par un menu contextuel. Et là surprise en (1) j'ai maintenant le
message d'erreur suivant:

" La référence d'une expression à la propriété Form/Report n'est pas valide"
etc....

Mon bouton de recherche et mon menu contextuel appelant la même fonction je
ne comprends pas!!!!

D'avance merci

Codial

4 réponses

Avatar
Antoine Labusquière
Je pense que c'est dû aux références Me que tu utilises.
Si tu veux utiliser un menu contextuel, il faudrait essayer en indiquant le
nom du formulaire.

"Codial" a écrit dans le message de
news:%
Bonjour

voilà au départ j'ai un bouton sur un form qui appelle une fonction d'un
module.
Cette fonction ouvre un form avec un champ pour saisir un numéro de
document

à rechercher.

Sur ce form j'ai un bouton (Ok) qui valide la recherche avec le code
suivant:

If Estvide(Me.NumDUM) Then
MsgBox "Vous devez saisir le numéro de DUM", vbInformation,
"Information"
Me.NumDUM.SetFocus
Else
'Rechercher le numéro de M6 dans la table DUM
Me.RecordsetClone.FindFirst "[N°DUM] = '" & Me![NumDUM] & "'"
If Me.RecordsetClone.NoMatch Then
MsgBox "Ce numéro de DUM est inconnu... ", vbCritical, "Non
trouvé"
Else
Me.Bookmark = Me.RecordsetClone.Bookmark
'Afficher la M6 sur le formulaire M6
'======================= > Forms!F_M6.RecordsetClone.FindFirst "[N°M6] = " & Me.N°M6
Forms!F_M6.Bookmark = Forms!F_M6.RecordsetClone.Bookmark
'Rechercher le DUM dans le sous-formulaire du form M6
'===================================== > Forms!F_M6!sous_FM6.SetFocus
(1) Forms!F_M6!sous_FM6.Form.RecordsetClone.FindFirst "[N°DUM] = '"
&

Me![NumDUM] & "'"
Forms!F_M6!sous_FM6.Form.Bookmark > Forms!F_M6!sous_FM6.Form.RecordsetClone.Bookmark

DoCmd.Close acForm, "F_Recherche_DUM"

End If
End If

et celà, grace à 3stone fonctionne très bien avec le bouton Recherche du
form..

Je me suis dis je vais remplacer tous mes boutons, dont celui de ma
recherche, par un menu contextuel. Et là surprise en (1) j'ai maintenant
le

message d'erreur suivant:

" La référence d'une expression à la propriété Form/Report n'est pas
valide"

etc....

Mon bouton de recherche et mon menu contextuel appelant la même fonction
je

ne comprends pas!!!!

D'avance merci

Codial








Avatar
Codial
Bonjour,

Le Me fait référence au formulaire de saisie du numéro de document et sur
lequel se trouve le bouton Ok de validation.

La fonction appelée est:

Function RechercheDum()
On Error GoTo Traitementerr
Forms!F_M6.FilterOn = False
DoCmd.OpenForm "F_Recherche_DUM", , , , , acDialog
Forms!F_M6!sous_FM6.SetFocus
(2) Forms!F_M6.Form!sous_FM6![N° DUM].SetFocus
End Function
'
En fait dans la syntaxe:
Forms!F_M6!sous_FM6.Form.RecordsetClone.FindFirst "[N°DUM] = '"&
Me![NumDUM] & "'"

c'est la propriété form qui semble ne pas être valide quand j'appelle à
partir du menu contextuel car quand je referme mon form j'ai la même erreur
sur:
(2) Forms!F_M6.Form!sous_FM6![N° DUM].SetFocus

Je ne comprends pas pourquoi!!

Quelqu'un peut m'expliquer ?

Cordialement

Codial



"Antoine Labusquière" a écrit dans
le message de news: crlnht$2m1$
Je pense que c'est dû aux références Me que tu utilises.
Si tu veux utiliser un menu contextuel, il faudrait essayer en indiquant
le
nom du formulaire.

"Codial" a écrit dans le message de
news:%
Bonjour

voilà au départ j'ai un bouton sur un form qui appelle une fonction d'un
module.
Cette fonction ouvre un form avec un champ pour saisir un numéro de
document

à rechercher.

Sur ce form j'ai un bouton (Ok) qui valide la recherche avec le code
suivant:

If Estvide(Me.NumDUM) Then
MsgBox "Vous devez saisir le numéro de DUM", vbInformation,
"Information"
Me.NumDUM.SetFocus
Else
'Rechercher le numéro de M6 dans la table DUM
Me.RecordsetClone.FindFirst "[N°DUM] = '" & Me![NumDUM] & "'"
If Me.RecordsetClone.NoMatch Then
MsgBox "Ce numéro de DUM est inconnu... ", vbCritical, "Non
trouvé"
Else
Me.Bookmark = Me.RecordsetClone.Bookmark
'Afficher la M6 sur le formulaire M6
'======================= >> Forms!F_M6.RecordsetClone.FindFirst "[N°M6] = " & Me.N°M6
Forms!F_M6.Bookmark = Forms!F_M6.RecordsetClone.Bookmark
'Rechercher le DUM dans le sous-formulaire du form M6
'===================================== >> Forms!F_M6!sous_FM6.SetFocus
(1) Forms!F_M6!sous_FM6.Form.RecordsetClone.FindFirst "[N°DUM] = '"
&

Me![NumDUM] & "'"
Forms!F_M6!sous_FM6.Form.Bookmark >> Forms!F_M6!sous_FM6.Form.RecordsetClone.Bookmark

DoCmd.Close acForm, "F_Recherche_DUM"

End If
End If

et celà, grace à 3stone fonctionne très bien avec le bouton Recherche du
form..

Je me suis dis je vais remplacer tous mes boutons, dont celui de ma
recherche, par un menu contextuel. Et là surprise en (1) j'ai maintenant
le

message d'erreur suivant:

" La référence d'une expression à la propriété Form/Report n'est pas
valide"

etc....

Mon bouton de recherche et mon menu contextuel appelant la même fonction
je

ne comprends pas!!!!

D'avance merci

Codial












Avatar
3stone
Salut Codial,

"Codial"
|
| Le Me fait référence au formulaire de saisie du numéro de document et sur
| lequel se trouve le bouton Ok de validation.


Je réquépépête depuis le bédut ;-)


Toute utilisation de "Me" (qui fait référence à l'instance du formulaire en cours)
*doit* et ne *peux* ce faire que *dans* le formulaire, et non dans une
barre de menu (qui ne fait pas partie des objets du formulaire)

Tous les "Me" doivent donc êtrent remplacer par l'expression complète
Forms!NomForm..... pour que VBA sache de quel formulaire tu parle.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Codial
Bonjour 3stone, ça va???

mais le Me en question ce fait dans le formulaire en cours puisqu'il s'agit
du code du bouton (Ok) qui est sur le form!
D'ailleurs par acquis de conscience j'ai remplacé le Me par
Forms!NomForm..... etc ...et l'erreur persiste!!!

Je ne comprends pas où est la nuance entre mon bouton du form principal et
mon menu contextuel qui appelle la même fonction!

Cordialement

Codial





"3stone" a écrit dans le message de news:

Salut Codial,

"Codial"
|
| Le Me fait référence au formulaire de saisie du numéro de document et
sur
| lequel se trouve le bouton Ok de validation.


Je réquépépête depuis le bédut ;-)


Toute utilisation de "Me" (qui fait référence à l'instance du formulaire
en cours)
*doit* et ne *peux* ce faire que *dans* le formulaire, et non dans
une
barre de menu (qui ne fait pas partie des objets du formulaire)

Tous les "Me" doivent donc êtrent remplacer par l'expression complète
Forms!NomForm..... pour que VBA sache de quel formulaire tu parle.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw