Je perds la d=E9finition de la propri=E9t=E9 OpenArgs dans un=20
formulaire si j'utilise la propri=E9t=E9 OrderBy.
Le probl=E8me est reproductible:
- Une base neuve contenant:
=3D> Formulaire1 avec un bouton de commande et le code:
Option Compare Database
Option Explicit
Private Sub CmdOuvrirFormulaire2_Click()
DoCmd.OpenForm "Formulaire2", acNormal, , ,=20
acFormPropertySettings, acWindowNormal, "Formulaire1"
Me.Visible =3D False
End Sub
=3D> Formulaire2, cr=E9=E9 par assistant, fond=E9 sur Table1, en=20
mode tabulaire, avec 2 boutons de commande.
Un pour fermer le formulaire, et un pour appliquer un=20
ordre de tri.
Le code:
Option Compare Database
Option Explicit
Private Sub CmdFermerFormulaire2_Click()
MsgBox "CmdFermer " & Me.OpenArgs
DoCmd.Close acForm, Me.Name, acSavePrompt
End Sub
Private Sub CmdAppliquerOrderBy_Click()
MsgBox "Avant OrderBy " & Me.OpenArgs
Me.OrderBy =3D "Lib"
Me.OrderByOn =3D True
MsgBox "Apres OrderBy " & Me.OpenArgs
End Sub
Private Sub Form_Close()
MsgBox "Form_Close" & Me.OpenArgs
Call AfficherFormulairePrecedent(Me.OpenArgs)
End Sub
=3D> Table1(Id#, Lib) les 2 champs sont Texte.
=3D> Module1 avec la proc=E9dure suivante
Option Compare Database
Option Explicit
Sub AfficherFormulairePrecedent(strNomForm As String)
Forms(strNomForm).Visible =3D True
End Sub
Ce qui se passe:
1) Ouvrir Formulaire1
2) Cliquer sur le bouton CmdOuvrirFormulaire2
=3D> Formulaire1 est rendu invisible
=3D> Formulaire2 s'ouvre
3) Cliquer sur le bouton CmdFermerFormulaire2
=3D> Formulaire2 est ferm=E9
=3D> Formulaire1 est rendu visible
4) Cliquer sur le bouton CmdOuvrirFormulaire2
=3D> Formulaire1 est rendu invisible
=3D> Formulaire2 s'ouvre
5) Cliquer sur le bouton CmdAppliquerOrderBy
=3D> Les infos sont tri=E9es sur le champ "lib"
6) Cliquer sur le bouton CmdFermerFormulaire2
=3D> Dans certain cas =E7a plante imm=E9diatement sur Call=20
AfficherFormulairePrecedent(Me.OpenArgs)
OpenArgs est pass=E9 =E0 Null??!!
7) Si ca marche, Cliquer sur le bouton=20
CmdOuvrirFormulaire2
=3D> Formulaire1 est rendu invisible
=3D> Formulaire2 s'ouvre
8) Cliquer DEUX FOIS sur le bouton CmdAppliquerOrderBy
=3D> Les infos sont tri=E9es sur le champ "lib"
9) Cliquer sur le bouton CmdFermerFormulaire2
=3D> L=E0 =E7a plante syst=E9matiquement sur Call=20
AfficherFormulairePrecedent(Me.OpenArgs)
Pourquoi????
O=F9 est mon erreur?
Bug Access?
Si vous avez des id=E9es, je suis preneur.
J'y suis depuis 2 jours... C'est horripilant!!
ooups, j'ai été bcp trop vite, ne tenez pas compte de ma remarque. Paul
Paul
Rebonjour Finalement, je pense qu'il vaudrait mieux rendre visible le formulaire 1 avant de fermer le formulaire 2. C'est-à-dire ne pas mettre la commande Call AfficherFormulairePrecedent(Me.OpenArgs) dans l'événement Close du formulaire mais la mettre avant la ligne DoCmd.Close acForm, Me.Name, acSavePrompt
Paul
Rebonjour
Finalement, je pense qu'il vaudrait mieux rendre visible le formulaire 1
avant de fermer le formulaire 2.
C'est-à-dire ne pas mettre la commande
Call AfficherFormulairePrecedent(Me.OpenArgs)
dans l'événement Close du formulaire
mais la mettre avant la ligne
DoCmd.Close acForm, Me.Name, acSavePrompt
Rebonjour Finalement, je pense qu'il vaudrait mieux rendre visible le formulaire 1 avant de fermer le formulaire 2. C'est-à-dire ne pas mettre la commande Call AfficherFormulairePrecedent(Me.OpenArgs) dans l'événement Close du formulaire mais la mettre avant la ligne DoCmd.Close acForm, Me.Name, acSavePrompt
Paul
Xavier HUE
Bonjour Paul,
J'ai contourné facilement le problème en mémorisant le contenu de OpenArgs au chargement du formulaire, mais ce que je ne comprends pas c'est pourquoi cette propriété est réinitialisée à Null dans l'évènement Form_Close Si et Seulement Si j'ai attribué une valeur à OrderBy??
Merci tout de même pour ta réponse
Cordialement.
Bonjour Paul,
J'ai contourné facilement le problème en mémorisant le
contenu de OpenArgs au chargement du formulaire, mais ce
que je ne comprends pas c'est pourquoi cette propriété est
réinitialisée à Null dans l'évènement Form_Close Si et
Seulement Si j'ai attribué une valeur à OrderBy??
J'ai contourné facilement le problème en mémorisant le contenu de OpenArgs au chargement du formulaire, mais ce que je ne comprends pas c'est pourquoi cette propriété est réinitialisée à Null dans l'évènement Form_Close Si et Seulement Si j'ai attribué une valeur à OrderBy??
Merci tout de même pour ta réponse
Cordialement.
J-Pierre
Essaie sur évènement Unload
J-Pierre
"Xavier HUE" a écrit dans le message de news:098001c3ae9d$cf3bff20$ Bonjour Paul,
J'ai contourné facilement le problème en mémorisant le contenu de OpenArgs au chargement du formulaire, mais ce que je ne comprends pas c'est pourquoi cette propriété est réinitialisée à Null dans l'évènement Form_Close Si et Seulement Si j'ai attribué une valeur à OrderBy??
Merci tout de même pour ta réponse
Cordialement.
Essaie sur évènement Unload
J-Pierre
"Xavier HUE" <elxavpub@bupfree.fr> a écrit dans le message de news:098001c3ae9d$cf3bff20$a501280a@phx.gbl...
Bonjour Paul,
J'ai contourné facilement le problème en mémorisant le
contenu de OpenArgs au chargement du formulaire, mais ce
que je ne comprends pas c'est pourquoi cette propriété est
réinitialisée à Null dans l'évènement Form_Close Si et
Seulement Si j'ai attribué une valeur à OrderBy??
"Xavier HUE" a écrit dans le message de news:098001c3ae9d$cf3bff20$ Bonjour Paul,
J'ai contourné facilement le problème en mémorisant le contenu de OpenArgs au chargement du formulaire, mais ce que je ne comprends pas c'est pourquoi cette propriété est réinitialisée à Null dans l'évènement Form_Close Si et Seulement Si j'ai attribué une valeur à OrderBy??
Merci tout de même pour ta réponse
Cordialement.
Xavier HUE
Re Paul,
Déjà testé. Symptôme identique.
Je ne m'explique pas le phénomène. Ca se contourne sans problème, mais pour mon information personnelle, j'aimerais comprendre. Jusqu'à cette semaine, je n'avais jamais eu à utiliser OrderBy. Pas de bol. J'innove est paf!
Je suppose que si Philippe Pham Minh n'intervient pas c'est que ça n'est pas référencé chez Microsoft.
Une façon détournée d'attirer ton attention Philippe ;-) Une idée?
Cordialement.
Re Paul,
Déjà testé. Symptôme identique.
Je ne m'explique pas le phénomène.
Ca se contourne sans problème, mais pour mon information
personnelle, j'aimerais comprendre.
Jusqu'à cette semaine, je n'avais jamais eu à utiliser
OrderBy. Pas de bol. J'innove est paf!
Je suppose que si Philippe Pham Minh n'intervient pas
c'est que ça n'est pas référencé chez Microsoft.
Une façon détournée d'attirer ton attention Philippe ;-)
Une idée?
Je ne m'explique pas le phénomène. Ca se contourne sans problème, mais pour mon information personnelle, j'aimerais comprendre. Jusqu'à cette semaine, je n'avais jamais eu à utiliser OrderBy. Pas de bol. J'innove est paf!
Je suppose que si Philippe Pham Minh n'intervient pas c'est que ça n'est pas référencé chez Microsoft.
Une façon détournée d'attirer ton attention Philippe ;-) Une idée?
Bonsoir Xavier, J'ai fait un essai sans table du tout dans le formulaire 2 (et donc sans Orderby). Si on utilise OpenArgs dans l'événement Close du formulaire, il y a une erreur : il me dit que la valeur est Null. C'est un comportement qui paraît somme toute logique : à la fermeture du formulaire, pourquoi y aurait-il besoin de savoir les caractéristiques de son ouverture ? Paul
Bonsoir Xavier,
J'ai fait un essai sans table du tout dans le formulaire 2 (et donc sans
Orderby).
Si on utilise OpenArgs dans l'événement Close du formulaire, il y a une
erreur : il me dit que la valeur est Null.
C'est un comportement qui paraît somme toute logique : à la fermeture du
formulaire, pourquoi y aurait-il besoin de savoir les caractéristiques de
son ouverture ?
Paul
Bonsoir Xavier, J'ai fait un essai sans table du tout dans le formulaire 2 (et donc sans Orderby). Si on utilise OpenArgs dans l'événement Close du formulaire, il y a une erreur : il me dit que la valeur est Null. C'est un comportement qui paraît somme toute logique : à la fermeture du formulaire, pourquoi y aurait-il besoin de savoir les caractéristiques de son ouverture ? Paul
Xavier HUE
Bonjour Paul,
Je te confirme que si on n'active pas OrderBy, la valeur de la propriété OpenArgs est disponible dans Form_Close et Form_UnLoad. Je viens de retester à l'instant.
Je ne comprends pas pourquoi Access se comporte ainsi chez moi et pas chez toi. Peut être l'application d'un SP. Je suis en SP1. Et toi?
Ceci dit, j'utilise OpenArg pour passer différents paramètres au formulaire appelé, dont, le nom du formulaire appelant, pour pouvoir réafficher ce dernier à la fermeture dudit formulaire appelé. Tout simplement.
J'ai résolu mon prob en stockant la valeur de OpenArgs dans une variable du formulaire dans Open_Form, mais je voulais juste comprendre pourquoi j'ai 2 comportements différents. Un coup ça marche! Un coup ça marche pas! Savoir si je commets une erreur grossière, ou si celà est lié à un bug Access. Savoir pourquoi cette "satanée" propriété se trouve mise à Null si on applique OrderBy? ;-)
Merci quand même de t'intêresser à ce problème. Pour le moment, je vais me "satisfaire" de ma résolution.
Cordialement.
Bonjour Paul,
Je te confirme que si on n'active pas OrderBy, la valeur
de la propriété OpenArgs est disponible dans Form_Close et
Form_UnLoad.
Je viens de retester à l'instant.
Je ne comprends pas pourquoi Access se comporte ainsi chez
moi et pas chez toi. Peut être l'application d'un SP. Je
suis en SP1. Et toi?
Ceci dit, j'utilise OpenArg pour passer différents
paramètres au formulaire appelé, dont, le nom du
formulaire appelant, pour pouvoir réafficher ce dernier à
la fermeture dudit formulaire appelé. Tout simplement.
J'ai résolu mon prob en stockant la valeur de OpenArgs
dans une variable du formulaire dans Open_Form, mais je
voulais juste comprendre pourquoi j'ai 2 comportements
différents. Un coup ça marche! Un coup ça marche pas!
Savoir si je commets une erreur grossière, ou si celà est
lié à un bug Access. Savoir pourquoi cette "satanée"
propriété se trouve mise à Null si on applique OrderBy? ;-)
Merci quand même de t'intêresser à ce problème.
Pour le moment, je vais me "satisfaire" de ma résolution.
Je te confirme que si on n'active pas OrderBy, la valeur de la propriété OpenArgs est disponible dans Form_Close et Form_UnLoad. Je viens de retester à l'instant.
Je ne comprends pas pourquoi Access se comporte ainsi chez moi et pas chez toi. Peut être l'application d'un SP. Je suis en SP1. Et toi?
Ceci dit, j'utilise OpenArg pour passer différents paramètres au formulaire appelé, dont, le nom du formulaire appelant, pour pouvoir réafficher ce dernier à la fermeture dudit formulaire appelé. Tout simplement.
J'ai résolu mon prob en stockant la valeur de OpenArgs dans une variable du formulaire dans Open_Form, mais je voulais juste comprendre pourquoi j'ai 2 comportements différents. Un coup ça marche! Un coup ça marche pas! Savoir si je commets une erreur grossière, ou si celà est lié à un bug Access. Savoir pourquoi cette "satanée" propriété se trouve mise à Null si on applique OrderBy? ;-)
Merci quand même de t'intêresser à ce problème. Pour le moment, je vais me "satisfaire" de ma résolution.