Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Désactiver - Réactiver un message

4 réponses
Avatar
butch
Bonjour,

P.-S: Si ce message apparaît en double dans le NG veuillez m'en excuser. Le
premier message posté ne semble pas avoir "fait son chemin".

Mise en situation:
Un formulaire basé sur une table contient un bouton de commande permettant
de dupliquer l'enregistrement actuellement affiché dans le formulaire.
Lorsque l'usager clique sur le bouton pour dupliquer l'enregistrement
visible, un message apparaît demandant à l'usager s'il désire vraiment
dupliquer l'enregistrement en cours. Le message contient le bouton OK
(dupliquer) et Annuler (stopper l'opération sans dupliquer).

Question:
Est-il possible d'ajouter au message qui s'affiche, une case à cocher
(exemple...) que pourrait cocher l'usager afin que le message qui s'affiche à
chaque fois qu'il clique sur le bouton Dupliquer ne s'affiche que lors d'une
première duplication et ne s'affiche plus par la suite et ce, jusqu'à la
prochaine ouverture du formulaire ?

Autrement dit... si l'usager doit dupliquer plusieurs enregistrements
différents (un à la fois) au cours d'une même utilisation du formulaire,
faire en sorte qu'il puisse désactiver le message afin de ne pas être obligé
d'attendre ce message (et de le voir) à chaque duplication, sauf la première.
Cependant, même si le message ne s'affiche que lors de la première
duplication, les duplications subséquentes doivent pouvoir être faites quand
même.
Enfin, il faudrait que le message puisse être automatiquement réactivé lors
d'une prochaine ouverture du formulaire (ex: le lendemain) et ainsi de suite.

Voilà... j'espère que cela est assez explicite.

--
Merci pour votre aide :-)
Butch

P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.

4 réponses

Avatar
Luiz Cláudio C. V. Rocha
Bonjour,

vous pouvez créer une variable Boolean dans la General Section de form module:

Private blnHideMessage As Boolean

Dan command_click, vous vérifiez si la variable est True ou False:

If blnHideMessage = False Then
'la message:
If MsgBox ("Do you really want to duplicate?", vbYesNo+vbQuestion)=vbYes Then
'your code to duplicate goes here
If Msgbox ("Do you want to disable this message?", vbYesNo+vbQuestion)=vbYes
Then
blnHideMessage=True
End If
End if
End If

--
Luiz Cláudio C. V. Rocha
Coordenador de Projetos FórumAccess
São Paulo - Brasil
MVP Office
http://www.msmvps.com/officedev


"butch" wrote:

Bonjour,

P.-S: Si ce message apparaît en double dans le NG veuillez m'en excuser. Le
premier message posté ne semble pas avoir "fait son chemin".

Mise en situation:
Un formulaire basé sur une table contient un bouton de commande permettant
de dupliquer l'enregistrement actuellement affiché dans le formulaire.
Lorsque l'usager clique sur le bouton pour dupliquer l'enregistrement
visible, un message apparaît demandant à l'usager s'il désire vraiment
dupliquer l'enregistrement en cours. Le message contient le bouton OK
(dupliquer) et Annuler (stopper l'opération sans dupliquer).

Question:
Est-il possible d'ajouter au message qui s'affiche, une case à cocher
(exemple...) que pourrait cocher l'usager afin que le message qui s'affiche à
chaque fois qu'il clique sur le bouton Dupliquer ne s'affiche que lors d'une
première duplication et ne s'affiche plus par la suite et ce, jusqu'à la
prochaine ouverture du formulaire ?

Autrement dit... si l'usager doit dupliquer plusieurs enregistrements
différents (un à la fois) au cours d'une même utilisation du formulaire,
faire en sorte qu'il puisse désactiver le message afin de ne pas être obligé
d'attendre ce message (et de le voir) à chaque duplication, sauf la première.
Cependant, même si le message ne s'affiche que lors de la première
duplication, les duplications subséquentes doivent pouvoir être faites quand
même.
Enfin, il faudrait que le message puisse être automatiquement réactivé lors
d'une prochaine ouverture du formulaire (ex: le lendemain) et ainsi de suite.

Voilà... j'espère que cela est assez explicite.

--
Merci pour votre aide :-)
Butch

P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.


Avatar
butch
Bonjour,

D'abord merci pour votre réponse mais... malheureusement, pour moi, ce n'est
pas clair!

Je ne comprends pas bien où mettre la procédure que vous suggérez. Qu'est-ce
que la "General Section de form module"???

Le bouton de commande permettant de dupliquer un enregistrement contient le
code ci-dessous:

Private Sub Bt_DupliquerFiche_Click()

If MsgBox("Attention ! Ne dupliquez pas une fiche pour laquelle le Nom
et le No Identité ne sont pas visibles dans la zone Nom et No Identité." &
Me!NoIdentité.Value, vbYesNo + vbQuestion, "Confirmez l'opération...") =
vbYes Then

On Error GoTo Err_Bt_DupliquerFiche_Click

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Exit_Bt_DupliquerFiche_Click:
Exit Sub

Err_Bt_DupliquerFiche_Click:
MsgBox Err.Description
Resume Exit_Bt_DupliquerFiche_Click
End If
End Sub

Est-ce que votre procédure peut (doit) s'intégrer à ce code déjà existant ?
--
Merci pour votre aide :-)
Butch

P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.



Bonjour,

vous pouvez créer une variable Boolean dans la General Section de form module:

Private blnHideMessage As Boolean

Dan command_click, vous vérifiez si la variable est True ou False:

If blnHideMessage = False Then
'la message:
If MsgBox ("Do you really want to duplicate?", vbYesNo+vbQuestion)=vbYes Then
'your code to duplicate goes here
If Msgbox ("Do you want to disable this message?", vbYesNo+vbQuestion)=vbYes
Then
blnHideMessage=True
End If
End if
End If

--
Luiz Cláudio C. V. Rocha
Coordenador de Projetos FórumAccess
São Paulo - Brasil
MVP Office
http://www.msmvps.com/officedev

Merci pour votre aide :-)
Butch

P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.




Avatar
Luiz Cláudio C. V. Rocha
La section générale est le commencement du module, droite après des "Option
Compare Database" et "Option Explicit" rapports.

Le code complet serait comme ceci:

Option Compare Database
Option Explicit

Private blnHideMessage As Boolean

Private Sub Bt_DupliquerFiche_Click()

On Error GoTo Err_Bt_DupliquerFiche_Click

If blnHideMessage = False Then
If MsgBox("Attention ! Ne dupliquez pas une fiche pour laquelle le Nom "
& _
"et le No Identité ne sont pas visibles dans la zone Nom et No Identité.
" & _
Me!NoIdentité.Value, vbYesNo + vbQuestion, "Confirmez l'opération...") = _
vbNo Then
GoTo Exit_Bt_DupliquerFiche_Click
End If
End If

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

If blnHideMessage = False Then
If MsgBox("Voulez-vous cacher de messages?", vbYesNo + vbQuestion) =
vbYes Then
blnHideMessage = True
End If
End If

Exit_Bt_DupliquerFiche_Click:
Exit Sub

Err_Bt_DupliquerFiche_Click:
MsgBox Err.Description
Resume Exit_Bt_DupliquerFiche_Click
End Sub


--
Luiz Cláudio C. V. Rocha
Coordenador de Projetos FórumAccess
São Paulo - Brasil
MVP Office
http://www.msmvps.com/officedev


"butch" wrote:

Bonjour,

D'abord merci pour votre réponse mais... malheureusement, pour moi, ce n'est
pas clair!

Je ne comprends pas bien où mettre la procédure que vous suggérez. Qu'est-ce
que la "General Section de form module"???

Le bouton de commande permettant de dupliquer un enregistrement contient le
code ci-dessous:

Private Sub Bt_DupliquerFiche_Click()

If MsgBox("Attention ! Ne dupliquez pas une fiche pour laquelle le Nom
et le No Identité ne sont pas visibles dans la zone Nom et No Identité." &
Me!NoIdentité.Value, vbYesNo + vbQuestion, "Confirmez l'opération...") =
vbYes Then

On Error GoTo Err_Bt_DupliquerFiche_Click

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Exit_Bt_DupliquerFiche_Click:
Exit Sub

Err_Bt_DupliquerFiche_Click:
MsgBox Err.Description
Resume Exit_Bt_DupliquerFiche_Click
End If
End Sub

Est-ce que votre procédure peut (doit) s'intégrer à ce code déjà existant ?
--
Merci pour votre aide :-)
Butch

P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.



Bonjour,

vous pouvez créer une variable Boolean dans la General Section de form module:

Private blnHideMessage As Boolean

Dan command_click, vous vérifiez si la variable est True ou False:

If blnHideMessage = False Then
'la message:
If MsgBox ("Do you really want to duplicate?", vbYesNo+vbQuestion)=vbYes Then
'your code to duplicate goes here
If Msgbox ("Do you want to disable this message?", vbYesNo+vbQuestion)=vbYes
Then
blnHideMessage=True
End If
End if
End If

--
Luiz Cláudio C. V. Rocha
Coordenador de Projetos FórumAccess
São Paulo - Brasil
MVP Office
http://www.msmvps.com/officedev

Merci pour votre aide :-)
Butch

P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.






Avatar
butch
Bonjour,

OK... Merci beaucoup.
--
Merci pour votre aide :-)
Butch

P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.



La section générale est le commencement du module, droite après des "Option
Compare Database" et "Option Explicit" rapports.

Le code complet serait comme ceci:

Option Compare Database
Option Explicit

Private blnHideMessage As Boolean

Private Sub Bt_DupliquerFiche_Click()

On Error GoTo Err_Bt_DupliquerFiche_Click

If blnHideMessage = False Then
If MsgBox("Attention ! Ne dupliquez pas une fiche pour laquelle le Nom "
& _
"et le No Identité ne sont pas visibles dans la zone Nom et No Identité.
" & _
Me!NoIdentité.Value, vbYesNo + vbQuestion, "Confirmez l'opération...") = _
vbNo Then
GoTo Exit_Bt_DupliquerFiche_Click
End If
End If

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

If blnHideMessage = False Then
If MsgBox("Voulez-vous cacher de messages?", vbYesNo + vbQuestion) =
vbYes Then
blnHideMessage = True
End If
End If

Exit_Bt_DupliquerFiche_Click:
Exit Sub

Err_Bt_DupliquerFiche_Click:
MsgBox Err.Description
Resume Exit_Bt_DupliquerFiche_Click
End Sub


--
Luiz Cláudio C. V. Rocha
Coordenador de Projetos FórumAccess
São Paulo - Brasil
MVP Office
http://www.msmvps.com/officedev


"butch" wrote:

Bonjour,

D'abord merci pour votre réponse mais... malheureusement, pour moi, ce n'est
pas clair!

Je ne comprends pas bien où mettre la procédure que vous suggérez. Qu'est-ce
que la "General Section de form module"???

Le bouton de commande permettant de dupliquer un enregistrement contient le
code ci-dessous:

Private Sub Bt_DupliquerFiche_Click()

If MsgBox("Attention ! Ne dupliquez pas une fiche pour laquelle le Nom
et le No Identité ne sont pas visibles dans la zone Nom et No Identité." &
Me!NoIdentité.Value, vbYesNo + vbQuestion, "Confirmez l'opération...") =
vbYes Then

On Error GoTo Err_Bt_DupliquerFiche_Click

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Exit_Bt_DupliquerFiche_Click:
Exit Sub

Err_Bt_DupliquerFiche_Click:
MsgBox Err.Description
Resume Exit_Bt_DupliquerFiche_Click
End If
End Sub

Est-ce que votre procédure peut (doit) s'intégrer à ce code déjà existant ?
--
Merci pour votre aide :-)
Butch

P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.



Bonjour,

vous pouvez créer une variable Boolean dans la General Section de form module:

Private blnHideMessage As Boolean

Dan command_click, vous vérifiez si la variable est True ou False:

If blnHideMessage = False Then
'la message:
If MsgBox ("Do you really want to duplicate?", vbYesNo+vbQuestion)=vbYes Then
'your code to duplicate goes here
If Msgbox ("Do you want to disable this message?", vbYesNo+vbQuestion)=vbYes
Then
blnHideMessage=True
End If
End if
End If

--
Luiz Cláudio C. V. Rocha
Coordenador de Projetos FórumAccess
São Paulo - Brasil
MVP Office
http://www.msmvps.com/officedev

Merci pour votre aide :-)
Butch

P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.