OVH Cloud OVH Cloud

enumeration des controles & sections d'un etat ou formulaire

4 réponses
Avatar
Machin chose
Bonjour.


J'ai un petit soucis que je n'arrive pas a contourner:

J'ai besoins d'énumérer tous les controles & propriétés d'un état,
ainsi que leurs hiérarchie (entete/groupe1/détail/pied de page, etc..).
Je fait donc l'énumération des etats ouverts, puis celle des sections
pour arriver enfin sur la liste des propriétés, avec un code qui ressemble
à ça:
-----------------------
Dim rpt As Report, prp As Property

For Each rpt In Reports
For idx = 1 To 8
On Error GoTo next_section
For Each prp In rpt.section(idx).Properties
' code ici
next prp
next_section:
next idx
next rpt
--------------------

La question est donc la suivante: comment arriver a n'avoir l'énumération
que des sections réellement définies au moment de l'intérrogation avec access 2000 ?
En effet, si en cours de listage, la section "acGroupLevel2Header" n'éxiste pas (par exemple)
dans l'état, VB va stopper net sans même utiliser le "on error goto..." .. Une solution ?


Merci d'avance.

4 réponses

Avatar
Michel Walsh
Salut,


Getz et Litwin essaient de lire la propriété Height de la section et
cela produirait une erreur qui serait "trappable" en exécution si la section
n'existe pas.



Espérant être utile,
Vanderghast, Access MVP



"Machin chose" wrote in message
news:ce3qqm$3hn$



Bonjour.


J'ai un petit soucis que je n'arrive pas a contourner:

J'ai besoins d'énumérer tous les controles & propriétés d'un état,
ainsi que leurs hiérarchie (entete/groupe1/détail/pied de page, etc..).
Je fait donc l'énumération des etats ouverts, puis celle des sections
pour arriver enfin sur la liste des propriétés, avec un code qui ressemble
à ça:
-----------------------
Dim rpt As Report, prp As Property

For Each rpt In Reports
For idx = 1 To 8
On Error GoTo next_section
For Each prp In rpt.section(idx).Properties
' code ici
next prp
next_section:
next idx
next rpt
--------------------

La question est donc la suivante: comment arriver a n'avoir l'énumération
que des sections réellement définies au moment de l'intérrogation avec
access 2000 ?

En effet, si en cours de listage, la section "acGroupLevel2Header"
n'éxiste pas (par exemple)

dans l'état, VB va stopper net sans même utiliser le "on error goto..." ..
Une solution ?



Merci d'avance.








Avatar
Machin chose
"Michel Walsh" a écrit dans le message de news: #
Salut,


Getz et Litwin essaient de lire la propriété Height de la section et
cela produirait une erreur qui serait "trappable" en exécution si la section
n'existe pas.


Malheureusement, c'eut été trop beau:

On parle bien de la même chose ? :

For idx = 0 To 8
On Error GoTo next_section
Debug.Print "rpt.section(" & idx & ").Height= " & rpt.section(idx).Height
.............

Là, malheureusement, le code s'arette toujours a la section 6 (acGroupLevel1Footer)
qui n'est pas utilisée.
On a pas moyen d'avoir une énumération de sections (genre "foreach sct in rpt.sections" )
ou carrément aller taper dans les tables système pour connaitre la liste des sections
d'un formulaire ?


A+ Z./

Avatar
Michel Walsh
Salut,

Non, ils (Getz et Litwin) déplorent ce fait, sous Access 97.
================
Public Sub TestSections()
Dim i As Integer
Dim temp As Integer

For i = 0 To 8

On Error Resume Next
temp = Reports!Report1.Section(i).Height

If 0 = Err.Number Then
Debug.Print Reports!Report1.Section(i).Name
End If

Err.Clear

Next i

End Sub
=================
semble bien fonctionner, sous Access 2003 (présuppose que Report1 est
ouvert en mode design).


Espérant être utile,
Vanderghast, Access MVP


"Machin chose" wrote in message
news:ce7rto$1t82$

"Michel Walsh" a écrit dans le
message de news: #

Salut,


Getz et Litwin essaient de lire la propriété Height de la section et
cela produirait une erreur qui serait "trappable" en exécution si la
section


n'existe pas.


Malheureusement, c'eut été trop beau:

On parle bien de la même chose ? :

For idx = 0 To 8
On Error GoTo next_section
Debug.Print "rpt.section(" & idx & ").Height= " &
rpt.section(idx).Height

.............

Là, malheureusement, le code s'arette toujours a la section 6
(acGroupLevel1Footer)

qui n'est pas utilisée.
On a pas moyen d'avoir une énumération de sections (genre "foreach sct in
rpt.sections" )

ou carrément aller taper dans les tables système pour connaitre la liste
des sections

d'un formulaire ?


A+ Z./






Avatar
Machin chose
"Michel Walsh" a écrit dans le message de news: #

Non, ils (Getz et Litwin) déplorent ce fait, sous Access 97.


je confirme que ça ne fonctionne pas non plus sous access 2000


Merci quand même .. Z.