Comment créer une collection

Le
domivax
Bonjour à tous,

J'ai

1) Un Etat (MonEtat), dans celui-ci
2) Un Sous-état (MonSousEtat), dans celui-ci
3) Un champ (MonChamp), alimenté par
4) Une requête (MaRequete),
5) Une fonction (MaFonction) pour déterminer si MaDonnee dans MonChamp
apparaît sur deux lignes.

Function MaFonction (pCtrl As Control, ByVal str As String)
Dim lx As Long, ly As Long
WizHook.Key = 51488399
WizHook.TwipsFromFont pCtrl.FontName, pCtrl.FontSize,
pCtrl.FontWeight, pCtrl.FontItalic, pCtrl.FontUnderline, 0, str, 0,
lx, ly
MaFonction = lx
End Function


Pour une question d'équilibre visuelle dans MonEtat, j'agis avec
le .Top de MonSousEtat pour le monter légèrement au cas où si MaDonnee
apparaît sur deux lignes.


Au formatage de MonSousEtat, j'ai commencé comme ceci :

For Each MyData In MyCollection
If Me. MonChamp.Width < MaFonction (Me. MonChamp, Me. MonChamp)
Then
Reports! MonEtat. MonSousEtat.Top = Reports! MonEtat.
MonSousEtat.Top - 190
ElseIf Not Me.MetServi.Width < GetTextLen(Me.MetServi,
Me.MetServi) Then
Reports! MonEtat. MonSousEtat.Top = Reports! MonEtat.
MonSousEtat.Top
End If

Next MyData

End Sub

Malheureusement, je sèche avec MyCollection, comment dire à Access que
MyCollection concernent chaque MonChamp généré par MaRequete

Merci pour votre aide.

A bientôt.
Xavier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry (ze Titi)
Le #6384121
Bonjour Xavier,

Je ne suis pas persuadé que tu sois parti sur la bonne solution...
Il me semble plutôt que tu devrais utiliser l'évènement "Au formattage"
de la section contenant ton sous-état et pour faire tes tests et ta
mise en forme.


Dans ton message du mardi 30/10/2007 jour de Saint Bienvenue, tu as pris l'initiative de
nous narrer les faits suivants:
Bonjour à tous,

J'ai ...

1) Un Etat (MonEtat), dans celui-ci
2) Un Sous-état (MonSousEtat), dans celui-ci
3) Un champ (MonChamp), alimenté par
4) Une requête (MaRequete),
5) Une fonction (MaFonction) pour déterminer si MaDonnee dans MonChamp
apparaît sur deux lignes.

Function MaFonction (pCtrl As Control, ByVal str As String)
Dim lx As Long, ly As Long
WizHook.Key = 51488399
WizHook.TwipsFromFont pCtrl.FontName, pCtrl.FontSize,
pCtrl.FontWeight, pCtrl.FontItalic, pCtrl.FontUnderline, 0, str, 0,
lx, ly
MaFonction = lx
End Function


Pour une question d'équilibre visuelle dans MonEtat, j'agis avec
le .Top de MonSousEtat pour le monter légèrement au cas où si MaDonnee
apparaît sur deux lignes.


Au formatage de MonSousEtat, j'ai commencé comme ceci :

For Each MyData In MyCollection
If Me. MonChamp.Width < MaFonction (Me. MonChamp, Me. MonChamp)
Then
Reports! MonEtat. MonSousEtat.Top = Reports! MonEtat.
MonSousEtat.Top - 190
ElseIf Not Me.MetServi.Width < GetTextLen(Me.MetServi,
Me.MetServi) Then
Reports! MonEtat. MonSousEtat.Top = Reports! MonEtat.
MonSousEtat.Top
End If

Next MyData

End Sub

Malheureusement, je sèche avec MyCollection, comment dire à Access que
MyCollection concernent chaque MonChamp généré par MaRequete

Merci pour votre aide.

A bientôt.
Xavier


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

domivax
Le #6383931
Bonjour Thierry,

Merci pour ta réponse mais je n'arrive pas à comprendre ce qui
changerait que je mette ma macro au formatage de MonEtat au lieu de
mon SousEtat.

Je vais préciser un peu ce que j'attends de ma macro.

J'ai un cadre dans MonEtat avec dans celui-ci : mon SousEtat aligné
verticalement au cadre et je voudrais aligner verticalement mes
données (maximum 3 données, pas plus)

J'ai en plus un TextBox qui renvoie le décompte des données (1,2 ou 3)
pour gérer le .Top initial de MonEtat.

Si une seule donnée est renvoyée sur une ligne, aucun problème puisque
mon SousEtat est initialement aligné verticalement , ex. :

----------------

MAGELLAN

----------------


Si j'ai une donnée mais sur deux lignes, je fais intervenir MaFonction
pour faire remonter légèrement mon SousEtat pour un alignement
vertical parfait, par ex. :

-----------------

CHRISTOPHE
COLOMB

-----------------

mais où ça se corse c'est si j'ai deux données ou trois, sur deux
lignes ou sur une, par ex. :

-----------------
MAGELLAN
CHRISTOPHE
COLOMB
-----------------

Comment faire ?

PS : ça ne me pose aucun problème que les données apparaissent sur
deux lignes.

Encore merci.
Bonne soirée.
Publicité
Poster une réponse
Anonyme