OVH Cloud OVH Cloud

VBA Access - Les Etats

3 réponses
Avatar
tarik.elomari
Salut,
J'aimerais savoir comment on peut agir individuellement (par du code)
sur les controles qui existent dans la section "d=E9tail" (zones de
texte) pour modifier leur taille par exemple.
L'int=E9r=EAt c'est que je veux que les 3 zones de texte que j'ai dans
cette section (l"une a cot=E9 de l'autre) prennent la taille de la plus
grande (sachant que chacune est auto extensible et qu'elle ne
contiennent pas la m=EAme quantit=E9 de texte).

Merci davance

3 réponses

Avatar
Gloops
Salut,

Dans le groupe microsoft.public.fr.access tu trouveras des gens qui
pratiquent Access au quotidien, et qui ont donc des chances de fournir
des réponses plus fiables.

A ce que je me rappelle la zone de texte a les propriétés Top, Left,
Height, Width qui permettent de gérer la position et la taille du
contrôle par rapport au contexte (formulaire, état). Si on fait ça par
code, ça se joue "en dynamique", une fois chargé, donc ça n'affecte pas
ce que tu vois en mode modification, avant exécution.

Je vais délirer un petit coup (sans rien tester ...) :

Dim intMax As Integer
Dim Ctl As Control
For Each Ctl in Me.Controls
If Ctl.Type = acText Then
If Ctl.Height > intMax then
intMax = Ctl.Height
End If
End If
Next
For Each Ctl in Me.Controls
If Ctl.Type = acText Then
Ctl.Height = intMax
End If
Next

Mais en relisant je me rends compte que j'ai tapé ça dans la perspective
d'un formulaire. Pour un état il faut tenir compte de la notion de
section (un peu comme pour des sous-formulaires).
Donc, au lieu de Me.Controls, taper Me(numeroSectionDetail).Controls

Renseigner numeroSectionDetail proprement, je n'ai plus touché à Access
depuis deux ans.
_________________________________
a écrit :
Salut,
J'aimerais savoir comment on peut agir individuellement (par du code)
sur les controles qui existent dans la section "détail" (zones de
texte) pour modifier leur taille par exemple.
L'intérêt c'est que je veux que les 3 zones de texte que j'ai dans
cette section (l"une a coté de l'autre) prennent la taille de la plus
grande (sachant que chacune est auto extensible et qu'elle ne
contiennent pas la même quantité de texte).

Merci davance



Avatar
tarik.elomari
merci Gloops,
mais la chose est bien plus chiante:
- D'abord le morceau doit porter sur tous les champs de la section
détail, qui se répètent pour tous les éléments de regroupement.
Pour que cela se réalise il faut intégrer la boucle dans un
événeement adéquat (soit formattage de détail ou son retreat, ou
celui de la page...), g essayé de jouer sur la propriété du controle
dans chaque événement mais ca a pas marché.
- D'autre part, je me permet de te corriger coté syntaxe, mais je ne
sais pas vraiement si c la seule syntaxe:: pour accéder à une
propriété (Height par exemple) Me.nomduControl.properties(19).value

- finalement, quand par exemple j'utilise MSGBOX
Me.nomduControl.properties(19).value
il m'affiche la hauteur par défaut(commune pour tous les
enregistrement) du controle et non la nouvelle valeur qui prends en
compte la teille du texte affiche.

Encore, au secours!!!
si qqn a une petite idée
Avatar
Gloops
a écrit :
merci Gloops,
mais la chose est bien plus chiante:
- D'abord le morceau doit porter sur tous les champs de la section
détail, qui se répètent pour tous les éléments de regroupement.
Pour que cela se réalise il faut intégrer la boucle dans un
événeement adéquat (soit formattage de détail ou son retreat, ou
celui de la page...), g essayé de jouer sur la propriété du controle
dans chaque événement mais ca a pas marché.



Rien compris

- D'autre part, je me permet de te corriger coté syntaxe, mais je ne
sais pas vraiement si c la seule syntaxe:: pour accéder à une
propriété (Height par exemple) Me.nomduControl.properties(19).value



Possible aussi, mais il faut avoir une raison de se compliquer
l'existence comme ça. Comme par exemple la nécessité de lister toutes
les propriétés ...


- finalement, quand par exemple j'utilise MSGBOX
Me.nomduControl.properties(19).value
il m'affiche la hauteur par défaut(commune pour tous les
enregistrement) du controle et non la nouvelle valeur qui prends en
compte la teille du texte affiche.



Tu fais ça dans quel événement ?