1) Un Etat (MonEtat), dans celui-ci
2) Un Sous-=E9tat (MonSousEtat), dans celui-ci
3) Un champ (MonChamp), aliment=E9 par
4) Une requ=EAte (MaRequete),
5) Une fonction (MaFonction) pour d=E9terminer si MaDonnee dans MonChamp
appara=EEt sur deux lignes.
Function MaFonction (pCtrl As Control, ByVal str As String)
Dim lx As Long, ly As Long
WizHook.Key =3D 51488399
WizHook.TwipsFromFont pCtrl.FontName, pCtrl.FontSize,
pCtrl.FontWeight, pCtrl.FontItalic, pCtrl.FontUnderline, 0, str, 0,
lx, ly
MaFonction =3D lx
End Function
Pour une question d'=E9quilibre visuelle dans MonEtat, j'agis avec
le .Top de MonSousEtat pour le monter l=E9g=E8rement au cas o=F9 si MaDonnee
appara=EEt sur deux lignes.
Au formatage de MonSousEtat, j'ai commenc=E9 comme ceci :
For Each MyData In MyCollection
If Me. MonChamp.Width < MaFonction (Me. MonChamp, Me. MonChamp)
Then
Reports! MonEtat. MonSousEtat.Top =3D Reports! MonEtat.
MonSousEtat.Top - 190
ElseIf Not Me.MetServi.Width < GetTextLen(Me.MetServi,
Me.MetServi) Then
Reports! MonEtat. MonSousEtat.Top =3D Reports! MonEtat.
MonSousEtat.Top
End If
Next MyData
End Sub
Malheureusement, je s=E8che avec MyCollection, comment dire =E0 Access que
MyCollection concernent chaque MonChamp g=E9n=E9r=E9 par MaRequete
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
Thierry (ze Titi)
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
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 <1193775986.817641.57550@y27g2000pre.googlegroups.com>
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
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
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. :
PS : ça ne me pose aucun problème que les données apparaissent sur deux lignes.
Encore merci. Bonne soirée.
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. :
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. :