OVH Cloud OVH Cloud

Créer des boutons dynamiquement

4 réponses
Avatar
Sun Service
Bonjour à tous,

J'aurais aimé savoir comment créer dynamiquement des boutons dans un
form en fonction des données d'une table.
Ex : J'ai n enregistrements dans une table, je voudrais que le form me
génère (à l'ouverture par exemple) n boutons, avec pour titre un des champs
de la table.

Je ne doute pas que cela soit possible, il m'aurait juste fallu une piste...

Merciiii

Laurent

4 réponses

Avatar
Raymond [mvp]
Bonjour.

La méthode CreateControl crée un contrôle dans un formulaire ouvert en mode
design. Tu ne peux donc pas créer un contrôle dans ton propre formulaire.
Je te donne ci-dessous l'exemple de l'aide en ligne qu'il te faudra
consulter.
Sub NewControls()
Dim frm As Form
Dim ctlLabel As Control, ctlText As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer

' Create new form with Orders table as its record source.
Set frm = CreateForm
frm.RecordSource = "Orders"
' Set positioning values for new controls.
intLabelX = 100
intLabelY = 100
intDataX = 1000
intDataY = 100
' Create unbound default-size text box in detail section.
Set ctlText = CreateControl(frm.Name, acTextBox, , "", "", _
intDataX, intDataY)
' Create child label control for text box.
Set ctlLabel = CreateControl(frm.Name, acLabel, , _
ctlText.Name, "NewLabel", intLabelX, intLabelY)
' Restore form.
DoCmd.Restore
End Sub

c'est une piste à explorer.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Sun Service" a écrit dans le message de
news:c7pvnn$b9l$
Bonjour à tous,

J'aurais aimé savoir comment créer dynamiquement des boutons dans un
form en fonction des données d'une table.
Ex : J'ai n enregistrements dans une table, je voudrais que le form me
génère (à l'ouverture par exemple) n boutons, avec pour titre un des
champs

de la table.

Je ne doute pas que cela soit possible, il m'aurait juste fallu une
piste...


Merciiii

Laurent




Avatar
Sun Service
Ah oui ok...ça ne va en effet pas me convenir...Je pense que tu as compris
ce que je veux faire, que penses tu si j'utilises un form avec plein de
boutons et que je fais des .visible = false ou .visible = true ? C'est une
bonne solution alternative, ou bien c'est un peu "crétin" ?

Merci

Laurent


"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

La méthode CreateControl crée un contrôle dans un formulaire ouvert en
mode

design. Tu ne peux donc pas créer un contrôle dans ton propre formulaire.
Je te donne ci-dessous l'exemple de l'aide en ligne qu'il te faudra
consulter.
Sub NewControls()
Dim frm As Form
Dim ctlLabel As Control, ctlText As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer

' Create new form with Orders table as its record source.
Set frm = CreateForm
frm.RecordSource = "Orders"
' Set positioning values for new controls.
intLabelX = 100
intLabelY = 100
intDataX = 1000
intDataY = 100
' Create unbound default-size text box in detail section.
Set ctlText = CreateControl(frm.Name, acTextBox, , "", "", _
intDataX, intDataY)
' Create child label control for text box.
Set ctlLabel = CreateControl(frm.Name, acLabel, , _
ctlText.Name, "NewLabel", intLabelX, intLabelY)
' Restore form.
DoCmd.Restore
End Sub

c'est une piste à explorer.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Sun Service" a écrit dans le message de
news:c7pvnn$b9l$
Bonjour à tous,

J'aurais aimé savoir comment créer dynamiquement des boutons dans un
form en fonction des données d'une table.
Ex : J'ai n enregistrements dans une table, je voudrais que le form me
génère (à l'ouverture par exemple) n boutons, avec pour titre un des
champs

de la table.

Je ne doute pas que cela soit possible, il m'aurait juste fallu une
piste...


Merciiii

Laurent









Avatar
Raymond [mvp]
On ne peut pas répondre comme ça. le nombre de boutons est-il fixe dans son
maximum ? si oui, tu peux procéder par True/false sur la propriété visible
mais il faut que les fonctions affectées à ces boutons soient fixes.
N'abandonnes pas la solution création car c'est faisable assez facilement.
au lieu de lancer ton formulaire ( de saisie par exemple) tu lances le
formulaire création qui ouvres le formulaire de saisie en mode caché, qui
crée les boutons et les fonctions, sauvegarde et ouvre le formulaire de
saisie en mode normal avec de beaux boutons.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Sun Service" a écrit dans le message de
news:c7q18c$cmo$
Ah oui ok...ça ne va en effet pas me convenir...Je pense que tu as compris
ce que je veux faire, que penses tu si j'utilises un form avec plein de
boutons et que je fais des .visible = false ou .visible = true ? C'est une
bonne solution alternative, ou bien c'est un peu "crétin" ?

Merci

Laurent


Avatar
Sun Service
Oui, c'est pas mal non plus, ok.
En effet mon nombres max de boutons est fixé...
bon, je vais faire mon choix parmis ces solutions
En tout cas merci à toi, une fois de plus

Ciao

Laurent

"Raymond [mvp]" a écrit dans le message de
news: OXHIv#
On ne peut pas répondre comme ça. le nombre de boutons est-il fixe dans
son

maximum ? si oui, tu peux procéder par True/false sur la propriété visible
mais il faut que les fonctions affectées à ces boutons soient fixes.
N'abandonnes pas la solution création car c'est faisable assez facilement.
au lieu de lancer ton formulaire ( de saisie par exemple) tu lances le
formulaire création qui ouvres le formulaire de saisie en mode caché, qui
crée les boutons et les fonctions, sauvegarde et ouvre le formulaire de
saisie en mode normal avec de beaux boutons.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Sun Service" a écrit dans le message de
news:c7q18c$cmo$
Ah oui ok...ça ne va en effet pas me convenir...Je pense que tu as
compris


ce que je veux faire, que penses tu si j'utilises un form avec plein de
boutons et que je fais des .visible = false ou .visible = true ? C'est
une


bonne solution alternative, ou bien c'est un peu "crétin" ?

Merci

Laurent