OVH Cloud OVH Cloud

coloriage de rectangle dans un Forms

5 réponses
Avatar
dumgest
S@lut


voilà, dans un formulaire RECTANGLE, j'ai 60 rectangles dans un formulaire ,
Boîte0, Boîte1 , Boîte2 ......
et dans une table un champs NOM (Boîte0, Boîte1 , Boîte2 ..) et COULEUR (
les couleur de fond du rectangle 52479, ...)

à l'ouverture du formulaire, les rectangles doivent prendre leur couleur
dans la table !!

es ce que vous avez un code qui pourrais m'aidez , ou un exemple proche??
c'est surtout extraire les données couleur de la table que j'ai du mal !!!

@+

DumDum

5 réponses

Avatar
Evaro
Bonjour,

"dumgest" a écrit dans le message de news:
4196f773$0$5889$




voilà, dans un formulaire RECTANGLE, j'ai 60 rectangles dans un formulaire
, Boîte0, Boîte1 , Boîte2 ......
et dans une table un champs NOM (Boîte0, Boîte1 , Boîte2 ..) et COULEUR
( les couleur de fond du rectangle 52479, ...)

à l'ouverture du formulaire, les rectangles doivent prendre leur couleur
dans la table !!

es ce que vous avez un code qui pourrais m'aidez , ou un exemple proche??


A coller sur l'évènement au chargement de ta table :

Private Sub Form_Load()
Dim rst As DAO.Recordset, strNom As String, lngCouleur As Long
Set rst = CurrentDb.OpenRecordset("T_BoxColor")
rst.MoveFirst
Do Until rst.EOF
strNom = rst!nomboite
lngCouleur = rst!couleur
Me(strNom).BackColor = lngCouleur
rst.MoveNext
Loop
Set rst = Nothing
End Sub

Penser à mettre la proporiété style de fond des rectangles sur Standard.
Cocher la référence Microsoft DAO 3.xx dans le menu outils / Référence de
l'éditeur VBA.

@+

Etienne

Avatar
dumgest


OOOO grand merçi !!

ce n'est pas pour de l'access 97 ???, mais j'ai la trame

je vais traduire ça

.merçi à toi grand sorcier du code !!




voilà, dans un formulaire RECTANGLE, j'ai 60 rectangles dans un
formulaire , Boîte0, Boîte1 , Boîte2 ......
et dans une table un champs NOM (Boîte0, Boîte1 , Boîte2 ..) et COULEUR
( les couleur de fond du rectangle 52479, ...)

à l'ouverture du formulaire, les rectangles doivent prendre leur couleur
dans la table !!

es ce que vous avez un code qui pourrais m'aidez , ou un exemple proche??


A coller sur l'évènement au chargement de ta table :

Private Sub Form_Load()
Dim rst As DAO.Recordset, strNom As String, lngCouleur As Long
Set rst = CurrentDb.OpenRecordset("T_BoxColor")
rst.MoveFirst
Do Until rst.EOF
strNom = rst!nomboite
lngCouleur = rst!couleur
Me(strNom).BackColor = lngCouleur
rst.MoveNext
Loop
Set rst = Nothing
End Sub

Penser à mettre la proporiété style de fond des rectangles sur Standard.
Cocher la référence Microsoft DAO 3.xx dans le menu outils / Référence de
l'éditeur VBA.

@+

Etienne






Avatar
Evaro
Normalement ça devrait être valable aussi pour 97
Sauf qu'il ne devrait pas nécessaire de préciser "DAO."
dans la déclaration, ADOX n'existait pas et il n'y avait
pas d'équivoque possible.
Peut-être fallait-il aussi spécifier un deuxième argument
dans la methode OpenRecordset :
Set rst = CurrentDb.OpenRecordset("T_BoxColor",DB_OPEN_TABLE)
ou
Set rst = CurrentDb.OpenRecordset("T_BoxColor",DB_OPEN_SNAPSHOT)

@+

Etienne

dumgest a écrit:


OOOO grand merçi !!

ce n'est pas pour de l'access 97 ???, mais j'ai la trame

je vais traduire ça

.merçi à toi grand sorcier du code !!





voilà, dans un formulaire RECTANGLE, j'ai 60 rectangles dans un
formulaire , Boîte0, Boîte1 , Boîte2 ......
et dans une table un champs NOM (Boîte0, Boîte1 , Boîte2 ..) et COULEUR
( les couleur de fond du rectangle 52479, ...)

à l'ouverture du formulaire, les rectangles doivent prendre leur couleur
dans la table !!

es ce que vous avez un code qui pourrais m'aidez , ou un exemple proche??


A coller sur l'évènement au chargement de ta table :

Private Sub Form_Load()
Dim rst As DAO.Recordset, strNom As String, lngCouleur As Long
Set rst = CurrentDb.OpenRecordset("T_BoxColor")
rst.MoveFirst
Do Until rst.EOF
strNom = rst!nomboite
lngCouleur = rst!couleur
Me(strNom).BackColor = lngCouleur
rst.MoveNext
Loop
Set rst = Nothing
End Sub

Penser à mettre la proporiété style de fond des rectangles sur Standard.
Cocher la référence Microsoft DAO 3.xx dans le menu outils / Référence de
l'éditeur VBA.

@+

Etienne












Avatar
dumgest
salut

en fait ça marche , c'est parfait !

maintenant je suis coincé avec mes rectangles

sur un clic sur un rectangle dans un formulaire, avec ce code derriére

Dim frm As Form, ctl As Control

' Retourne un objet Form pointant vers un formulaire actif.
Set frm = Screen.ActiveForm
MsgBox frm.Name & " est le formulaire actif."
' Retourne un objet Control pointant vers un contrôle actif.
Set ctl = Screen.ActiveControl
MsgBox ctl.Name & " est le contrôle actif" _
& " dans ce formulaire."

ce n'est pas le NAME de mon rectangle qui sort pourquoi ??
parce que mon rectangle n'est pas un CONTROL ??

alors comment recuperer le NAME de mon rectangle ??

merçi, pour cette lumiére divine !!

@+

Rémi


etienne a écrit
Normalement ça devrait être valable aussi pour 97
Sauf qu'il ne devrait pas nécessaire de préciser "DAO."
dans la déclaration, ADOX n'existait pas et il n'y avait
pas d'équivoque possible.
Peut-être fallait-il aussi spécifier un deuxième argument
dans la methode OpenRecordset :
Set rst = CurrentDb.OpenRecordset("T_BoxColor",DB_OPEN_TABLE)
ou
Set rst = CurrentDb.OpenRecordset("T_BoxColor",DB_OPEN_SNAPSHOT)

@+

Etienne

dumgest a écrit:


OOOO grand merçi !!

ce n'est pas pour de l'access 97 ???, mais j'ai la trame

je vais traduire ça

.merçi à toi grand sorcier du code !!





voilà, dans un formulaire RECTANGLE, j'ai 60 rectangles dans un
formulaire , Boîte0, Boîte1 , Boîte2 ......
et dans une table un champs NOM (Boîte0, Boîte1 , Boîte2 ..) et COULEUR
( les couleur de fond du rectangle 52479, ...)

à l'ouverture du formulaire, les rectangles doivent prendre leur couleur
dans la table !!

es ce que vous avez un code qui pourrais m'aidez , ou un exemple
proche??


A coller sur l'évènement au chargement de ta table :

Private Sub Form_Load()
Dim rst As DAO.Recordset, strNom As String, lngCouleur As Long
Set rst = CurrentDb.OpenRecordset("T_BoxColor")
rst.MoveFirst
Do Until rst.EOF
strNom = rst!nomboite
lngCouleur = rst!couleur
Me(strNom).BackColor = lngCouleur
rst.MoveNext
Loop
Set rst = Nothing
End Sub

Penser à mettre la proporiété style de fond des rectangles sur Standard.
Cocher la référence Microsoft DAO 3.xx dans le menu outils / Référence de
l'éditeur VBA.

@+

Etienne
















Avatar
Evaro
Bonjour,


Dim frm As Form, ctl As Control

' Retourne un objet Form pointant vers un formulaire actif.
Set frm = Screen.ActiveForm
MsgBox frm.Name & " est le formulaire actif."
' Retourne un objet Control pointant vers un contrôle actif.
Set ctl = Screen.ActiveControl
MsgBox ctl.Name & " est le contrôle actif" _
& " dans ce formulaire."

ce n'est pas le NAME de mon rectangle qui sort pourquoi ??
parce que mon rectangle n'est pas un CONTROL ??


C'est un contrôle qui ne peut pas recevoir le focus (comme les lignes, les
étiquettes...), la sélection ne s'arrête jamais dessus lorsque que tu
navigues dans un formulaire avec la touche TAB du clavier.

Deux solutions,
ou tu remplaces les rectangles par des zones de texte (le plus simple),
ou tu remplaces l'évènement 'Sur Click' du rectangle par l'évènement sur
'Sur souris relachée' , ce qui te permet des récupérer les coordonnées X et
Y du clic et de rechercher dans la table, dans laquelle tu auras ajouté les
champs Top, Left, Width, Height, le rectangle dans les clous duquel entre le
clic (pour ceux qui aiment faire compliqué).
@ +
Etienne