enumeration des controles & sections d'un etat ou formulaire
4 réponses
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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <nobody@invalid.bzh> wrote in message
news:ce3qqm$3hn$1@biggoron.nerim.net...
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 ?
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.
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./
"Michel Walsh" <vanderghast@VirusAreFunnierThanSpam> a écrit dans le message de news: #JCF6w8cEHA.3476@tk2msftngp13.phx.gbl...
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 ?
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./
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./
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" <nobody@invalid.bzh> wrote in message
news:ce7rto$1t82$1@biggoron.nerim.net...
"Michel Walsh" <vanderghast@VirusAreFunnierThanSpam> a écrit dans le
message de news: #JCF6w8cEHA.3476@tk2msftngp13.phx.gbl...
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