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

fermer l'état, s'il n'est plus le focus

8 réponses
Avatar
Guy du Lac
Bonjour à tous,

Access 2007
Je voudrais fermer un état quand il perd le focus
j'ai essayé la commande DoCmd.Close acReport, "facture1" dans les évènements
Deactivate et LostFocus sans succès.

msg d'erreur : This action can't be carried out while processing a form or a
report.

--
Merci,
Guy du Lac

8 réponses

Avatar
Thom
Bonjour,

Dans ton état, il suffit d'ajouter le code suivant sur l'événement
"désactivé"

Bonne journée,

Thomas


Private Sub Report_Deactivate()

DoCmd.Close acReport, Me.Name, acSaveNo

End sub


"Guy du Lac" a écrit dans le message de
news:
Bonjour à tous,

Access 2007
Je voudrais fermer un état quand il perd le focus
j'ai essayé la commande DoCmd.Close acReport, "facture1" dans les
évènements
Deactivate et LostFocus sans succès.

msg d'erreur : This action can't be carried out while processing a form or
a
report.

--
Merci,
Guy du Lac


Avatar
Thom
Pardon, j'ai mal lu ton post!

C'est étrange, ça fonctionne chez moi, à la seule différence que j'utilise
Me.Name

"Guy du Lac" a écrit dans le message de
news:
Bonjour à tous,

Access 2007
Je voudrais fermer un état quand il perd le focus
j'ai essayé la commande DoCmd.Close acReport, "facture1" dans les
évènements
Deactivate et LostFocus sans succès.

msg d'erreur : This action can't be carried out while processing a form or
a
report.

--
Merci,
Guy du Lac


Avatar
Thom
C'est encore moi!

Tu n'as pas un traitement qui tournerais pendant que tu ferme ton
formulaire?

As tu libéré tous tes recordset? fichier ou autre?

J'imagine qu'il existe un numéro d'erreur, ça peut être intéressant de le
rechercher sur le Net et en particulier sur la MSDN.




"Thom" a écrit dans le message de news:
%
Pardon, j'ai mal lu ton post!

C'est étrange, ça fonctionne chez moi, à la seule différence que j'utilise
Me.Name

"Guy du Lac" a écrit dans le message
de news:
Bonjour à tous,

Access 2007
Je voudrais fermer un état quand il perd le focus
j'ai essayé la commande DoCmd.Close acReport, "facture1" dans les
évènements
Deactivate et LostFocus sans succès.

msg d'erreur : This action can't be carried out while processing a form
or a
report.

--
Merci,
Guy du Lac






Avatar
Argyronet
Bonjour,

La notion de désactivation est rencontrée lorque la barre de titre devient
plus claire ou grisée selon la config de Windows, en d'autre termes, lorsque
vous avez cliqué sur une autre fenêtre.

Dans ce cas, ce code est parfaitement opérationnel :

Option Compare Database
Option Explicit

Private Sub Report_Activate()
MsgBox Me.Name & " est activé !"
End Sub

Private Sub Report_Deactivate()
If MsgBox(Me.Name & " est désactivé :" & vbCrLf & "Voulez-vous fermer
l'état '" & Me.Name & "' ?", vbQuestion + vbYesNo) = vbYes Then
DoCmd.Close acReport, Me.Name
End If
End Sub

Il ne vous reste plus qu'à l'adapter pour votre cas...

Bonne journée,
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



Bonjour à tous,

Access 2007
Je voudrais fermer un état quand il perd le focus
j'ai essayé la commande DoCmd.Close acReport, "facture1" dans les évènements
Deactivate et LostFocus sans succès.

msg d'erreur : This action can't be carried out while processing a form or a
report.

--
Merci,
Guy du Lac


Avatar
Guy du Lac
Bonjour Argy,

Voici le problème que j'ai.

j'ai un formulaire qui contient une liste de facture. Quand on click sur le
bouton Etat, la facture sélectionné ouvre dans son onglet. Le problème est
qu'en retournant dans le formulaire de la liste des factures sans fermer
l'onglet état, si je sélectionne une autre facture et si je retourne dans
l'onglet Etat, l'état n'est plus synchronisé avec le formulaire. C'est pour
cette raison que je tente de fermer l'état quand je perds le focus. Ou ce
serait encore mieux si je pouvais synchroniser.



--
Merci,
Guy du Lac



Bonjour,

La notion de désactivation est rencontrée lorque la barre de titre devient
plus claire ou grisée selon la config de Windows, en d'autre termes, lorsque
vous avez cliqué sur une autre fenêtre.

Dans ce cas, ce code est parfaitement opérationnel :

Option Compare Database
Option Explicit

Private Sub Report_Activate()
MsgBox Me.Name & " est activé !"
End Sub

Private Sub Report_Deactivate()
If MsgBox(Me.Name & " est désactivé :" & vbCrLf & "Voulez-vous fermer
l'état '" & Me.Name & "' ?", vbQuestion + vbYesNo) = vbYes Then
DoCmd.Close acReport, Me.Name
End If
End Sub

Il ne vous reste plus qu'à l'adapter pour votre cas...

Bonne journée,
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



Bonjour à tous,

Access 2007
Je voudrais fermer un état quand il perd le focus
j'ai essayé la commande DoCmd.Close acReport, "facture1" dans les évènements
Deactivate et LostFocus sans succès.

msg d'erreur : This action can't be carried out while processing a form or a
report.

--
Merci,
Guy du Lac




Avatar
Argyronet
Humm, vous utilisez Access 2007 en toute apparence ?
Vous évoquez des onglets...
Si tel est le cas, effectivement, ce n'est pas la bonne solution.
Vous confirmez...?

En fait, dans l'absolu, vous avez un nom de "Report" qui s'ouvre ;
Le mieux est de le mettre dans une variable pour + de confort.
Alors, sur l'événement click de votre bouton Etat, vous fermer d'abord
l'état avant de le réouvrir. C'est une tite solution en attendant. Je ne suis
pas en mesure de vous proposer autre chose tant que je ne sais pas la version
utilisée, celle proposée dans mon précédent post étant testée sur
97-2000-2002-2003.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



Bonjour Argy,

Voici le problème que j'ai.

j'ai un formulaire qui contient une liste de facture. Quand on click sur le
bouton Etat, la facture sélectionné ouvre dans son onglet. Le problème est
qu'en retournant dans le formulaire de la liste des factures sans fermer
l'onglet état, si je sélectionne une autre facture et si je retourne dans
l'onglet Etat, l'état n'est plus synchronisé avec le formulaire. C'est pour
cette raison que je tente de fermer l'état quand je perds le focus. Ou ce
serait encore mieux si je pouvais synchroniser.



--
Merci,
Guy du Lac



Bonjour,

La notion de désactivation est rencontrée lorque la barre de titre devient
plus claire ou grisée selon la config de Windows, en d'autre termes, lorsque
vous avez cliqué sur une autre fenêtre.

Dans ce cas, ce code est parfaitement opérationnel :

Option Compare Database
Option Explicit

Private Sub Report_Activate()
MsgBox Me.Name & " est activé !"
End Sub

Private Sub Report_Deactivate()
If MsgBox(Me.Name & " est désactivé :" & vbCrLf & "Voulez-vous fermer
l'état '" & Me.Name & "' ?", vbQuestion + vbYesNo) = vbYes Then
DoCmd.Close acReport, Me.Name
End If
End Sub

Il ne vous reste plus qu'à l'adapter pour votre cas...

Bonne journée,
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



Bonjour à tous,

Access 2007
Je voudrais fermer un état quand il perd le focus
j'ai essayé la commande DoCmd.Close acReport, "facture1" dans les évènements
Deactivate et LostFocus sans succès.

msg d'erreur : This action can't be carried out while processing a form or a
report.

--
Merci,
Guy du Lac






Avatar
Guy du Lac
salut

oui je suis sur Access 2007
--
Merci,
Guy du Lac



Humm, vous utilisez Access 2007 en toute apparence ?
Vous évoquez des onglets...
Si tel est le cas, effectivement, ce n'est pas la bonne solution.
Vous confirmez...?

En fait, dans l'absolu, vous avez un nom de "Report" qui s'ouvre ;
Le mieux est de le mettre dans une variable pour + de confort.
Alors, sur l'événement click de votre bouton Etat, vous fermer d'abord
l'état avant de le réouvrir. C'est une tite solution en attendant. Je ne suis
pas en mesure de vous proposer autre chose tant que je ne sais pas la version
utilisée, celle proposée dans mon précédent post étant testée sur
97-2000-2002-2003.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



Bonjour Argy,

Voici le problème que j'ai.

j'ai un formulaire qui contient une liste de facture. Quand on click sur le
bouton Etat, la facture sélectionné ouvre dans son onglet. Le problème est
qu'en retournant dans le formulaire de la liste des factures sans fermer
l'onglet état, si je sélectionne une autre facture et si je retourne dans
l'onglet Etat, l'état n'est plus synchronisé avec le formulaire. C'est pour
cette raison que je tente de fermer l'état quand je perds le focus. Ou ce
serait encore mieux si je pouvais synchroniser.



--
Merci,
Guy du Lac



Bonjour,

La notion de désactivation est rencontrée lorque la barre de titre devient
plus claire ou grisée selon la config de Windows, en d'autre termes, lorsque
vous avez cliqué sur une autre fenêtre.

Dans ce cas, ce code est parfaitement opérationnel :

Option Compare Database
Option Explicit

Private Sub Report_Activate()
MsgBox Me.Name & " est activé !"
End Sub

Private Sub Report_Deactivate()
If MsgBox(Me.Name & " est désactivé :" & vbCrLf & "Voulez-vous fermer
l'état '" & Me.Name & "' ?", vbQuestion + vbYesNo) = vbYes Then
DoCmd.Close acReport, Me.Name
End If
End Sub

Il ne vous reste plus qu'à l'adapter pour votre cas...

Bonne journée,
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



Bonjour à tous,

Access 2007
Je voudrais fermer un état quand il perd le focus
j'ai essayé la commande DoCmd.Close acReport, "facture1" dans les évènements
Deactivate et LostFocus sans succès.

msg d'erreur : This action can't be carried out while processing a form or a
report.

--
Merci,
Guy du Lac








Avatar
Argyronet
Eh bien du fait que vous soyez en "mode onglet" (désactivable depuis les
options d'Access), la notion événementielle des fenêtres empêche en quelque
sorte d'interagir sur les événements depuis l'état lui même.
Vous pouvez alors, comme je vous l'ai évoqué précédemment, agir depuis le
formulaire comme suit :

Private Sub Form_Activate()
Const ETAT_OUVERT_OU_CREATION As Long = 0
Const RPT_FACTURE As String = "Le nom de votre état"

If SysCmd(acSysCmdGetObjectState, acReport, RPT_FACTURE) <>
ETAT_OUVERT_OU_CREATION Then
If Reports(RPT_FACTURE).CurrentView <> ETAT_OUVERT_OU_CREATION Then
If MsgBox(RPT_FACTURE & " est encore ouvert :" & vbCrLf &
"Voulez-vous fermer l'état '" & Me.Name & "' ?", vbQuestion + vbYesNo) =
vbYes Then
DoCmd.Close acReport, RPT_FACTURE
End If
End If
End If
End Sub

Vous adaptez le code en fonction de vos besoins... Il reste ici pratique
pour l'exemple.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



salut

oui je suis sur Access 2007
--
Merci,
Guy du Lac



Humm, vous utilisez Access 2007 en toute apparence ?
Vous évoquez des onglets...
Si tel est le cas, effectivement, ce n'est pas la bonne solution.
Vous confirmez...?

En fait, dans l'absolu, vous avez un nom de "Report" qui s'ouvre ;
Le mieux est de le mettre dans une variable pour + de confort.
Alors, sur l'événement click de votre bouton Etat, vous fermer d'abord
l'état avant de le réouvrir. C'est une tite solution en attendant. Je ne suis
pas en mesure de vous proposer autre chose tant que je ne sais pas la version
utilisée, celle proposée dans mon précédent post étant testée sur
97-2000-2002-2003.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



Bonjour Argy,

Voici le problème que j'ai.

j'ai un formulaire qui contient une liste de facture. Quand on click sur le
bouton Etat, la facture sélectionné ouvre dans son onglet. Le problème est
qu'en retournant dans le formulaire de la liste des factures sans fermer
l'onglet état, si je sélectionne une autre facture et si je retourne dans
l'onglet Etat, l'état n'est plus synchronisé avec le formulaire. C'est pour
cette raison que je tente de fermer l'état quand je perds le focus. Ou ce
serait encore mieux si je pouvais synchroniser.



--
Merci,
Guy du Lac



Bonjour,

La notion de désactivation est rencontrée lorque la barre de titre devient
plus claire ou grisée selon la config de Windows, en d'autre termes, lorsque
vous avez cliqué sur une autre fenêtre.

Dans ce cas, ce code est parfaitement opérationnel :

Option Compare Database
Option Explicit

Private Sub Report_Activate()
MsgBox Me.Name & " est activé !"
End Sub

Private Sub Report_Deactivate()
If MsgBox(Me.Name & " est désactivé :" & vbCrLf & "Voulez-vous fermer
l'état '" & Me.Name & "' ?", vbQuestion + vbYesNo) = vbYes Then
DoCmd.Close acReport, Me.Name
End If
End Sub

Il ne vous reste plus qu'à l'adapter pour votre cas...

Bonne journée,
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



Bonjour à tous,

Access 2007
Je voudrais fermer un état quand il perd le focus
j'ai essayé la commande DoCmd.Close acReport, "facture1" dans les évènements
Deactivate et LostFocus sans succès.

msg d'erreur : This action can't be carried out while processing a form or a
report.

--
Merci,
Guy du Lac