Les boutons dans les formulaires dynamiques ?

supertoms Messages postés 32 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 27 janvier 2013 - 17 avril 2008 à 18:43
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 - 18 avril 2008 à 08:55
Salut à tous,

j'ai deux problèmes avec un formulaire généré dynamiquement


1) Je voudrais savoir comment coder un bouton dessus, un truc de ce genre certainement mais je ne trouve pas :
Set ctlText = CreateControl(frm.Name, acCommandButton, "", "", 100, 100)

<!-- BEGIN TEMPLATE: bbcode_code --><!-- END TEMPLATE: bbcode_code -->2) Ensuite, j'ai une question plus importante et qui me fais beaucoup plus peur !!!

Comment je code ce bouton par la suite ? Ou dois-mettre la fonction button_click() ?

En effet, vu que le formulaire est généré dynamiquement, je n'ai pas
accès au formulaire pour mettre dans son code le button_click vu qu'il
n'est pas encore généré à ce moment ?

Vous me suivez ?


Merci d'avance !

8 réponses

cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
17 avril 2008 à 19:10
Salut,
bein facile tout ça
regarde :

Dim WithEvents Monbouton As CommandButton


Private Sub Form_Load()
    
    Set Monbouton = Controls.Add("VB.CommandButton", "Monbouton")


    Monbouton.Left = 20
    Monbouton.Top = 30
    Monbouton.Caption = "coucou me voila"
    Monbouton.Visible = True
End Sub


' et maintenant les evenements, pas bien compliqué non plus....
Private Sub Monbouton_click()
    MsgBox "ben voila, a qui qu'on dit merci ?"
End Sub

@+ Megafan




 
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 avril 2008 à 19:14
Salut,

>[auteur/MEGAFAN/6935.aspx Megafan] : il est en VBA access et la création de control dynamique avec leurs événements est un peu plus tendue que cela il me semble

<hr size="2" width="100%" />@+: Ju£i?n
Pensez: Réponse
0
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
17 avril 2008 à 19:40
Salut Jrivet
Ca faisait longtemps, ça scrabble a fond ? heu pardon ça Scribble à fond ?
Sinon non pas de probléme en VBA, tout pareil  ,je viens d'essayer avec Excel ...
j'ai juste remplacé VB par la bonne classe.

Set Monbouton = Controls.Add("Forms.CommandButton.1", "MonBouton")

Je pense que si ça marche avec excel , ça marche avec Access ....
Mais d'ailleur ou tu as vu que c'est avec access ??????????
@++
Megafan
0
supertoms Messages postés 32 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 27 janvier 2013
17 avril 2008 à 20:28
Salut et merci, oui je travaille sous ACCESS

J'ai copié :

"Dim WithEvents Monbouton As CommandButton
Set Monbouton Controls.Add("VB.CommandButton", "Monbouton")     Monbouton.Left 20
Monbouton.Top = 30
Monbouton.Caption = "coucou me voila"
Monbouton.Visible = True"

dans un bouton_click mais ça ne marche pas, mon application ne veux pas se lancer et m'affiche plein de :
"L'expression Expand entrée comme paramètre de la propriété de type evenement est a l'origine d'une erreur. Attribut incorect dans une procedure Sub ou Function.
0

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

Posez votre question
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
17 avril 2008 à 20:53
Salut,
Désolé je suis pas un spécialiste Access....
Mais je répéte, si ça fonctionne en VBA sous Excel, je vois pas de raison pour que ça ne fonctionne pas sous Acess non ?

as tu changé pour : Set Monbouton = Controls.Add("Forms.CommandButton.1", "MonBouton")

Tiens moi au courant.
@+ Megafan
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 avril 2008 à 21:09
Salut,
> [auteur/MEGAFAN/6935.aspx Megafan]: J'avais pas fait le rapprochement.

Bah en fait j'ai développé sur la base de ton MultiScr"i"bble un Scr"i"bble jouable à 4 en réseaux . On a joué comme des dingues au boulot. Mais la ca s'est tassé.

Pour en revenir au problème. VBA ACCESS est très... singulier surtout au niveau des gestion de controles. (recherche rapide sur Google te le montrera)

<hr size="2" width="100%" />@+: Ju£i?n
Pensez: Réponse
0
supertoms Messages postés 32 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 27 janvier 2013
17 avril 2008 à 23:01
Ouai ça fait toujours les mêmes messages d'erreur, mon code est :
 mon code ça done ça :

Private Sub btn_genere_Click()
    '(...)création dynamqiue du form
    Application.RefreshDatabaseWindow
    DoCmd.Save
    DoCmd.Close
    DoCmd.OpenForm "Formulaire1"
    Dim WithEvents Monbouton As CommandButton
    Set Monbouton = Controls.Add("Formulaire1.CommandButton.1", "MonBouton")
    Monbouton.Left = 20
    Monbouton.Top = 30
    Monbouton.Caption = "coucou me voila"
    Monbouton.Visible = True
End Sub

Merci d'avance.
0
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
18 avril 2008 à 08:55
Salut,
Désolé de pas pouvoir t'aider plus, j'ai pas Access... (hou la honte je sais), je préfére SQL Serveur (comme quoi j'ai peur de rien  )
As-tu essayé de déplacé le code de création du controle dans le Form_load() de ton formulaire ? car je ne sais pas si tu peux le créer depuis un aute endroit.
Tiens moi au courant
@+ Megafan
0