OVH Cloud OVH Cloud

rendre enable un bouton mais sur quel form?

6 réponses
Avatar
squeepy
Bonjour,

Dans un formulaire, j'ai une zone de liste qui contient (par une requete)
tous des enregistrements incomplets
quand je double clique dessus, par ce code :
DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
ca m'ouvre le formulaire voulu à l'enregistrement voulu

la question que je voudrais savoir, c'est que j'aimerais rendre enable
(false) le bouton "autre enregistrement " du formulaire que je vais ouvrir
mais comment faire?
la seule solution que j'ai trouvé pour l'instant c'est de faire :
DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
Form_Form1.Cmd_AutreEnregistrement.Enabled = False
Form_Form2.Cmd_AutreEnregistrement.Enabled = False
....
Form_Form120.Cmd_AutreEnregistrement.Enabled = False

C'est un peu fastidieux

Merci de votre aide

6 réponses

Avatar
Eric
Bonjour,

Si j'ai bien compris, dans la procédure qui doit ouvrir le formulaire :

Dim NomForm as String, f as Form
NomForm = "Form" & Liste27.Column(Num_Fiche + 2)
DoCmd.OpenForm NomForm, , , "num_fiche=" & Me.Liste27.Column(4)
For Each f In Forms ' Collection des formulaires ouverts
If f.Name = NomForm Then
f.Controls("Cmd_AutreEnregistrement").Visible = False
Exit For
End If
Next f

C'est mieux ?

PS: 120 forms !!! pour mise à jour

Bonjour,

Dans un formulaire, j'ai une zone de liste qui contient (par une requete)
tous des enregistrements incomplets
quand je double clique dessus, par ce code :
DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
ca m'ouvre le formulaire voulu à l'enregistrement voulu

la question que je voudrais savoir, c'est que j'aimerais rendre enable
(false) le bouton "autre enregistrement " du formulaire que je vais ouvrir
mais comment faire?
la seule solution que j'ai trouvé pour l'instant c'est de faire :
DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
Form_Form1.Cmd_AutreEnregistrement.Enabled = False
Form_Form2.Cmd_AutreEnregistrement.Enabled = False
....
Form_Form120.Cmd_AutreEnregistrement.Enabled = False

C'est un peu fastidieux

Merci de votre aide


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Jessy Sempere
Bonjour

J'ose espérer que tu n'as pas un formulaire par enregistrement...
Regardes l'aide sur OpenArgs, tu peux en utilisant DoCmd.OpenForm mettre cet
argument, après, pour le formulaire que tu ouvres il te suffit de tester la
valeur de openargs...

Sinon, tu peux aussi faire :

DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
Forms("Form" & Liste27.Column(Num_Fiche +
2)).Cmd_AutreEnregistrement.Enabled = False

@+
Jessy Sempere

------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"squeepy" a écrit dans le message de
news:
Bonjour,

Dans un formulaire, j'ai une zone de liste qui contient (par une requete)
tous des enregistrements incomplets
quand je double clique dessus, par ce code :
DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
ca m'ouvre le formulaire voulu à l'enregistrement voulu

la question que je voudrais savoir, c'est que j'aimerais rendre enable
(false) le bouton "autre enregistrement " du formulaire que je vais ouvrir
mais comment faire?
la seule solution que j'ai trouvé pour l'instant c'est de faire :
DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
Form_Form1.Cmd_AutreEnregistrement.Enabled = False
Form_Form2.Cmd_AutreEnregistrement.Enabled = False
....
Form_Form120.Cmd_AutreEnregistrement.Enabled = False

C'est un peu fastidieux

Merci de votre aide


Avatar
Eric
Bonjour Jessy,

Oui, la 2ème solution est bien meilleure.
Autant j'avais pensé à utiliser l'OpenArgs mais je trouvais cela un peu
long pour les 120 formulaires, autant je n'ai pas pensé, puisque le
formulaire était ouvert juste avant, à enchainer directement la
modification de la propriété Visible du contrôle.
Un parcours de la collection + test, vraiment pas performant quand on
sait que le formulaire est ouvert. J'aurais du passer ;-) sur ce coup.

Bonjour

J'ose espérer que tu n'as pas un formulaire par enregistrement...
Regardes l'aide sur OpenArgs, tu peux en utilisant DoCmd.OpenForm mettre cet
argument, après, pour le formulaire que tu ouvres il te suffit de tester la
valeur de openargs...

Sinon, tu peux aussi faire :

DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
Forms("Form" & Liste27.Column(Num_Fiche +
2)).Cmd_AutreEnregistrement.Enabled = False

@+
Jessy Sempere

------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Jessy Sempere
Salut Eric

Je te rassure je ne compte même plus les fois où j'aurais du passer...
Mais notre ami Pierre CFI doit compter pour nous... ;-))

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



Bonjour Jessy,

Oui, la 2ème solution est bien meilleure.
Autant j'avais pensé à utiliser l'OpenArgs mais je trouvais cela un peu
long pour les 120 formulaires, autant je n'ai pas pensé, puisque le
formulaire était ouvert juste avant, à enchainer directement la
modification de la propriété Visible du contrôle.
Un parcours de la collection + test, vraiment pas performant quand on
sait que le formulaire est ouvert. J'aurais du passer ;-) sur ce coup.

Bonjour

J'ose espérer que tu n'as pas un formulaire par enregistrement...
Regardes l'aide sur OpenArgs, tu peux en utilisant DoCmd.OpenForm mettre cet
argument, après, pour le formulaire que tu ouvres il te suffit de tester la
valeur de openargs...

Sinon, tu peux aussi faire :

DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
Forms("Form" & Liste27.Column(Num_Fiche +
2)).Cmd_AutreEnregistrement.Enabled = False

@+
Jessy Sempere

------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Pierre CFI [mvp]
p'tain, je reste peinard dans mon coin et voilà la jeunesse délinquante qui
déboule :o))


--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"Jessy Sempere" a écrit dans le message de news:

Salut Eric

Je te rassure je ne compte même plus les fois où j'aurais du passer...
Mais notre ami Pierre CFI doit compter pour nous... ;-))

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



Bonjour Jessy,

Oui, la 2ème solution est bien meilleure.
Autant j'avais pensé à utiliser l'OpenArgs mais je trouvais cela un peu
long pour les 120 formulaires, autant je n'ai pas pensé, puisque le
formulaire était ouvert juste avant, à enchainer directement la
modification de la propriété Visible du contrôle.
Un parcours de la collection + test, vraiment pas performant quand on
sait que le formulaire est ouvert. J'aurais du passer ;-) sur ce coup.

Bonjour

J'ose espérer que tu n'as pas un formulaire par enregistrement...
Regardes l'aide sur OpenArgs, tu peux en utilisant DoCmd.OpenForm
mettre cet
argument, après, pour le formulaire que tu ouvres il te suffit de
tester la
valeur de openargs...

Sinon, tu peux aussi faire :

DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , ,
"num_fiche=" &
Me.Liste27.Column(4)
Forms("Form" & Liste27.Column(Num_Fiche +
2)).Cmd_AutreEnregistrement.Enabled = False

@+
Jessy Sempere

------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
squeepy
JE m'en vais essayer cela

Pour répondre à Jessy & Eric, oui j'ai 1 form par enregistrement mais ils
sont tous de pres ou de loin différents, ca serait un peu long à expliquer
par contre le bouton cmd_autreenreigstrement revient d'ou ma question
--
Merci de votre aide



Bonjour

J'ose espérer que tu n'as pas un formulaire par enregistrement...
Regardes l'aide sur OpenArgs, tu peux en utilisant DoCmd.OpenForm mettre cet
argument, après, pour le formulaire que tu ouvres il te suffit de tester la
valeur de openargs...

Sinon, tu peux aussi faire :

DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
Forms("Form" & Liste27.Column(Num_Fiche +
2)).Cmd_AutreEnregistrement.Enabled = False

@+
Jessy Sempere

------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"squeepy" a écrit dans le message de
news:
Bonjour,

Dans un formulaire, j'ai une zone de liste qui contient (par une requete)
tous des enregistrements incomplets
quand je double clique dessus, par ce code :
DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
ca m'ouvre le formulaire voulu à l'enregistrement voulu

la question que je voudrais savoir, c'est que j'aimerais rendre enable
(false) le bouton "autre enregistrement " du formulaire que je vais ouvrir
mais comment faire?
la seule solution que j'ai trouvé pour l'instant c'est de faire :
DoCmd.OpenForm "Form" & Liste27.Column(Num_Fiche + 2), , , "num_fiche=" &
Me.Liste27.Column(4)
Form_Form1.Cmd_AutreEnregistrement.Enabled = False
Form_Form2.Cmd_AutreEnregistrement.Enabled = False
....
Form_Form120.Cmd_AutreEnregistrement.Enabled = False

C'est un peu fastidieux

Merci de votre aide