Cohiba021
Messages postés7Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention29 avril 2009
-
2 févr. 2005 à 16:15
Cohiba021
Messages postés7Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention29 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.
cs_tari
Messages postés34Date d'inscriptionjeudi 25 mars 2004StatutMembreDernière intervention29 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
Cohiba021
Messages postés7Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention29 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).
Vous n’avez pas trouvé la réponse que vous recherchez ?
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 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
Cohiba021
Messages postés7Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention29 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
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 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