Question d'un p'tit nouveau

Cohiba021 Messages postés 7 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 29 avril 2009 - 2 févr. 2005 à 16:15
Cohiba021 Messages postés 7 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 29 avril 2009 - 2 févr. 2005 à 21:41
Salut a vous ! je me posais une question. J'aimerais savoir s'il est possible de changer le nom d'un bouton par programmation dans un programmation VBa pour Acces.

Mise en situation :

J'ai un formulaire avec plusieur boutons

Commande0, Commande1 ...

J'aimerais que Commande0 change pour cmdAllo lorsque l'argument donne par le clique sur le boutons du formulaire précédent est allo.

Je ne sais pas si je suis assez clair, mais il me serait très pratique de savoir s'il est possible et surtout qu'elle est la ligne de commande.

Merci et bonne journée a tous,

8 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 6
2 févr. 2005 à 16:44
Je ne pense pas que ce soit possible et, surtout, je ne vois quel est l'intérêt ?
0
cs_tari Messages postés 34 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 29 avril 2005
2 févr. 2005 à 17:29
C'est très simple
Pour afficher la valeur du bouton du formulaire1 sur le bouton du formulaire2
dans le code de la Form_Load du 2nd formulaire tu mets :

Form_<nom du bouton du 2ème formulaire>.<nom du bouton du 2ème formulaire>.caption = Form_<nom du 1er formulaire>.<nom du bouton du 1er formulaire>.caption

tu peu mettre autre chose (variable ou texte entre " ") après le =
Voilà
J'espère avoir bien compris ton problème, si tu ne trouve pas ou si ce n'est pas n'hésite pas à demander
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 6
2 févr. 2005 à 17:37
Avec ce code tu changes le texte du bouton (propriété Caption), pas son nom (Propriété Name).
0
Cohiba021 Messages postés 7 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 29 avril 2009
2 févr. 2005 à 17:57
oki alors vous allez peut-être alors m'aidez a trouver une autre solution.

J'ai FRMmain qui a plusiseur bouton.

Lorsque je clique sur cmdtpv il load le FRM2, qui a plusieurs boutons non visible, avec l'argument Tpv et affiche 2 boutons.

Un avec Problème et un avec contacte en caption. que je rend visible.

Mais quesqui arrive c'est que selon l'argument envoyer le bouton dont le nom (Propriété Name) est commande0 n'ouvre pas toujours la même chose. Donc ce que je voulais faire c'est changé commande0 en cmdXXXXX et créé un private sub pour cmdXXXX qui change selon l'argument reçu a l'ouverture de FRM"

Désolé si je en suis pas assez clair, je en suis pas très habitué à programmer et je n'utilise surment pas toujours les bon terme.

Mais je vous remercie de prendre le temps de me répondre.

Bonne journée a tous, (ou bonne soiré si vous n'êtes pas au canada).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 6
2 févr. 2005 à 18:17
Ca pour pas être clair ...

Résumons :
Qu'est ce que la variable tpv ? Où est-elle définie?
Sur quelle Form est situé le bouton Command0 ? Est-ce un de tes boutons avec, en caption, Problème ou Contact ?

Pour moi, si ton principe de fonctionnement est (Attention le code ci-dessous ne fonctionne pas !!!!)
If tpv = "allo" Then
command0.Name = "cmdAllo"
Else
command0.Name = "cmdToto"
End if
Avec :
Private Sub cmdAllo_Click()
....
End Sub
Private Sub cmdToto_Click()
...
End Sub

Rien ne t'empêche d'avoir à la place
Private Sub Command0_Click()
If tpv = "allo" Then
Call MySubAllo()
Else
Call MySubToto()
End If
End Sub

Private Sub MySubAllo()
...
End Sub

Private Sub MySubToto()
...
End Sub
0
Cohiba021 Messages postés 7 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 29 avril 2009
2 févr. 2005 à 20:12
Ok je suis désole, de ne pas être clair.





J’ai FrmMain, et FRM2.





Dans FrmMain il y un 2 boutons commande.





1 qui est CmdA et1 qui est CmdB.





Lorsque je clique sur Cmda je load FRM2 avec l’argument A1 et si je clique sur B je load encore FRM2 mais L’argument B1





Donc lorsque FRM2 load il active les boutons nécessaires selon que l’argument envoyé soit A1 ou B1.





Par exemple FRM2 a 6 boutons non affiché. L’argument A1 active 2 boutons (Commande0 et Commande1) et l’argument B1 active 3 boutons (Commande0, Commande1, Commande2). Mais ce qui arrive c’est que Commande0 qui a été activé avec l’argument A1 n’ouvrira pas la même chose que Commande0 qui a été activé par l’argument B1.





Je sais que je pourrais faire plusieurs formulaires différents mais je ne veux pas être obligé de créer un formulaire pour chaque bouton créé dans FrmMain. Car chaque bouton vont ouvrir un formulaire semble, (en fait il a juste le nombre de bouton et le nom (caption) des boutons qui change).








Je sais pas si sa va vous aider mais bon, voici ce qu’il a dans le Sub CmdA





Private Sub cmdA_Click()





DoCmd.OpenForm "frm2", , , , , , "SPID"





End Sub





Et voici ce qu’il a dans le Sub CmdB





Private Sub cmdtpv_Click()





DoCmd.OpenForm "frm2", , , , , , "TPV"


End Sub








Dans FRM2 j’ai





Private Sub Commande0_Click()





DoCmd.OpenForm "frmTemplateRecherche", , , , , , tblA1





End Sub





Si il a été activé avec l’argument A1 mais s’il est activé avec l’argument B1 alors il faudrait que sa devienne





Private Sub Commande0_Click()





DoCmd.OpenForm "frmTemplatecontact", , , , , , tblcontactB1





End Sub











Je vous remercie vraiment de votre aide et surtout de votre patience
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 6
2 févr. 2005 à 20:37
OK, j'ai compris !!!
Il faut utiliser la propriété OpenArgs, pour savoir quelle est la valeur de l'argument que tu as passé à FRM2
Et donc, il faut mettre dans les événements click de tes boutons Command0, Command1 .... le test sur OpenArgs pour choisir ce que tu vas faire :
Private Sub Commande0_Click()
if OpenArgs = "SPID" Then
DoCmd.OpenForm "frmTemplateRecherche", , , , , , tblA1
else
'TPV<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /> DoCmd.OpenForm "frmTemplatecontact", , , , , , tblcontactB1
end if
End Sub
0
Cohiba021 Messages postés 7 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 29 avril 2009
2 févr. 2005 à 21:41
Merci beaucoup de ton aide...

Je test et je t'e donne des nouvelle

Merci encore
0