OVH Cloud OVH Cloud

FormatConditions

29 réponses
Avatar
zzzz
Bonjour,
Je voudrais mettre du gras sur une zone de texte d'un =E9tat (plus de 3
conditions)
Ma recherche sur les sites http://warin.developpez.com/ et
http://starec.developpez.com/ m'a permis de faire :

Private Sub Report_Open(Cancel As Integer)
Me.TypDipl.FormatConditions.Add acFieldValue, acEqual, "BTS"
Me.TypDipl.FormatConditions.Item(0).FontBold =3D True
End Sub

avec ou sans Me., le message d'erreur est : "membre de m=E9thode ou de
donn=E9es introuvable"

Merci de votre aide
Eric

10 réponses

1 2 3
Avatar
zzzz
On 24 fév, 10:26, zzzz wrote:
On 23 fév, 17:52, zzzz wrote:

> On 23 fév, 15:04, "3stone" wrote:

> > Par contre, je pense que tu ne crées pas cet état de toute pièc e

> Exact, je ne m'en rappelle pas, mais des fois je fais des copier
> coller d'états.
> Je vais le recréer de toute pièces

> > par du code, pourqoi alors n'utilises tu pas le menu
> > => Format, Mise en forme conditionnelle pour faire cela ?

> Parceque j'ai plus de 3 valeurs, il me semble que Format, Mise en
> forme conditionnelle  est limité à 3; je suis sous 2003

Bonjour,
Je viens de créer un nouvel état (basé sur une table) sans copier-
coller avec uniquement une zone de texte; son nom c'est TD et la
source controle c'est TypDipl

Private Sub Report_Open(Cancel As Integer)
Debug.Print TypDipl
Me!TypDipl.FormatConditions.Add acFieldValue, acEqual, "BTS"
Me!TypDipl.FormatConditions.Item(0).FontBold = True
End Sub

Erreur 2465 "Impossible de trouver le champ 'TypDipl'.... au niveau du
debug.print...



J'ai fait un mauvais copier-coller
au lieu de :"Debug.Print Niveau",lire "Debug.Print TypDipl"
Avatar
3stone
Salut,

zzzz wrote:
son nom c'est TD et la source controle c'est TypDipl


[...]
Erreur 2465 "Impossible de trouver le champ 'TypDipl'....




et cela ne te parle pas ?...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
zzzz
On 24 fév, 17:28, "3stone" wrote:
Salut,



zzzz wrote:
>  son nom c'est TD et la source controle c'est TypDipl
[...]
> Erreur 2465 "Impossible de trouver le champ 'TypDipl'....

et cela ne te parle pas ?...

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)



Ah, Non, mais vraiment pas du tout... S'il ne trouve pas c'est que
pour lui ça n'existe pas...Je ne vois pas la solution...
Avec debug.print TD, j'obtiens "Erreur 2427, expression sans
paramètres.
Avatar
3stone
Salut,

zzzz wrote:
son nom c'est TD et la source controle c'est TypDipl


[...]
Erreur 2465 "Impossible de trouver le champ 'TypDipl'....



et cela ne te parle pas ?...




Ah, Non, mais vraiment pas du tout... S'il ne trouve pas c'est que
pour lui ça n'existe pas...Je ne vois pas la solution...
Avec debug.print TD, j'obtiens "Erreur 2427, expression sans
paramètres.




Sur un formulaire, tu as des "zones de texte"
(que l'on appelle aussi improprement "des champs")
et via les propriétés d'une zone de texte:
=> onglet Données, Source contrôle, on lit le nom du champ source
=> onglet Autres, Nom, on lit le nom de la zone de texte.

Le nom et le libéllé de l'étiquette n'a pas d'importance ici...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
zzzz
On 26 fév, 02:18, "3stone" wrote:

Sur un formulaire, tu as des "zones de texte"
(que l'on appelle aussi improprement "des champs")
et via les propriétés d'une zone de texte:
=> onglet Données, Source contrôle, on lit le nom du champ source
=> onglet Autres, Nom, on lit le nom de la zone de texte.

Le nom et le libéllé de l'étiquette n'a pas d'importance ici...



Je suis d'accord avec tout ce que tu dis, mais ça ne me donne pas la
réponse à ma question; pourquoi me dit-il "Impossible de trouver le
champ 'TypDipl'." Je sais, tu vas me dire parcequ'il ne le trouve pas,
mais je ne comprends pas pourquoi il ne le trouve pas, puisque dans
onglet Données, Source contrôle, il y a bien TypDipl...
NB : je pense que ce n'est pas important, mais il s'agit, dans mon cas
d'un état
Avatar
Michel__D
Bonjour,

zzzz a écrit :
On 26 fév, 02:18, "3stone" wrote:


Sur un formulaire, tu as des "zones de texte"
(que l'on appelle aussi improprement "des champs")
et via les propriétés d'une zone de texte:
=> onglet Données, Source contrôle, on lit le nom du champ source
=> onglet Autres, Nom, on lit le nom de la zone de texte.

Le nom et le libéllé de l'étiquette n'a pas d'importance ici...




Je suis d'accord avec tout ce que tu dis, mais ça ne me donne pas la
réponse à ma question; pourquoi me dit-il "Impossible de trouver le
champ 'TypDipl'." Je sais, tu vas me dire parcequ'il ne le trouve pas,
mais je ne comprends pas pourquoi il ne le trouve pas, puisque dans
onglet Données, Source contrôle, il y a bien TypDipl...
NB : je pense que ce n'est pas important, mais il s'agit, dans mon cas
d'un état



Bon, alors lorsqu'on une erreur de ce type apparaît cela veut dire que
la référence mentionnée n'a
pas été trouvé et de la en découle plusieurs possibiltées :

1) Erreur dans l'écriture de la référence => il faut donc rectifier le tir.

2) Ce n'est pas la bonne référence qui est prise en compte => vérifier à
quoi s'applique la collection
"FormatConditions" dans l'aide intégrée

PS: Dans la fenêtre VBA tu as la complétion automatique qui peut aussi
aider :

Me!Nom_du_controle. => ici il devrait te proposer une liste déroulante
avec les propriétés/collections/fonctions liés au type de l'objet.
Avatar
zzzz
Bonjour,
1) Erreur dans l'écriture de la référence => il faut donc rectifi er le tir.


C'est la 1re chose à quoi j'ai pensé avant d'avoir posté ce message;
j'ai vérifié et revérifié de 2 manières au moins, donc ça ne vi ent pas
de là

2) Ce n'est pas la bonne référence qui est prise en compte => vér ifier à quoi s'applique la collection
 "FormatConditions" dans l'aide intégrée


L'aide me dit (d'après ce que j'ai compris) que FormatConditions
s'applique à Add et à Modify

PS: Dans la fenêtre VBA tu as la complétion automatique qui peut auss i aider :
Me!Nom_du_controle. => ici il devrait te proposer une liste déroulant e
avec les propriétés/collections/fonctions liés au type de l'objet.-



J'y avais déjà pensé; Me!Typdipl. ne me propose que Value.

Quelqu'un peut-il m'envoyer une base composé d'une seule table avec un
seul champ (colonne) composé de 4 ou 5 enregistrements (prénoms par
exemple) et avec un état qui se met en gras pour Pierre.
Merci d'avance.
Avatar
zzzz
Je viens de créer une BD avec une seule table Table1 de 5 prénoms et
un état Etat1.
l'entête de colonne de la table est "noms".
Nom de la zone de texte = "noms"
et de la source controle = "noms"

Private Sub Report_Open(Cancel As Integer)
Debug.Print noms
Me!noms.FormatConditions.Add acFieldValue, acEqual, "alain"
Me!noms.FormatConditions.Item(0).FontBold = True
End Sub

- sur debug.print "2427 expression sans paramètres"
- Me!noms. ne me propose pas de FormatConditions

1re avancée : le code s'exécute, mais une boite de dialogue me demande
d'entrer une valeur de paramètre pour alain (ça ressemble à une erreu r
de frappe pour alain, mais j'ai vérifié)
Avatar
3stone
Salut,

zzzz wrote:
Je viens de créer une BD avec une seule table Table1 de 5 prénoms et
un état Etat1.
l'entête de colonne de la table est "noms".
Nom de la zone de texte = "noms"
et de la source controle = "noms"

Private Sub Report_Open(Cancel As Integer)



Debug.Print noms



Debug.Print [un champ]

n'a rien à faire à cet endroit !
Cela devrait se trouver dans la section détail...


Me!noms.FormatConditions.Add acFieldValue, acEqual, "alain"
Me!noms.FormatConditions.Item(0).FontBold = True
End Sub

- sur debug.print "2427 expression sans paramètres"
- Me!noms. ne me propose pas de FormatConditions

1re avancée : le code s'exécute, mais une boite de dialogue me demande
d'entrer une valeur de paramètre pour alain (ça ressemble à une erreur
de frappe pour alain, mais j'ai vérifié)



Comme déjà dit, le principe de l'expression utilisée est correcte, mais...

J'ai toujours considéré que le "formatage conditionnel" est un bricolage
plutôt infect et lorsque utile, je manipule l'apparence des ZdT directement
par le VBA, dans la section détail.

L'expression utilisée fonctionne sans problème pour les valeurs numériques
Pour les chaînes, tu subis les bugs qui se traînent de version en version :-(

Lors de l'interprétation de:
Me!noms.FormatConditions.Add acFieldValue, acEqual, "alain"
Me!noms.FormatConditions.Item(0).FontBold = True

Access avale les guillemets et se retrouve alors à chercher une..valeur numérique!

Pour que cela fonctionne, il faut alors doubler les guillemets, méthode Access:

Me!noms.FormatConditions.Add acFieldValue, acEqual, """alain"""

et alors cela fonctionne comme prévu.

Je te conseille de laisser tomber cette méthode qui consiste à créer
un formatage conditionnel par le VBA et de plutôt manipuler
l'apparence de tes zones de texte dans la section détail de ton etat,
ou d'utiliser le formatage conditionnel via le menu.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
zzzz
> Pour que cela fonctionne, il faut alors doubler les guillemets, méthode Access:
Me!noms.FormatConditions.Add acFieldValue, acEqual, """alain"""


ça marche comme ça (quote entre guillemets):
Me!TypDipl.FormatConditions.Delete
Me!TypDipl.FormatConditions.Add acFieldValue, acEqual, "'BTS'"
Me!TypDipl.FormatConditions.Item(0).FontBold = True
Me!TypDipl.FormatConditions.Add acFieldValue, acEqual, "'BAC PRO'"
Me!TypDipl.FormatConditions.Item(1).FontBold = True
Me!TypDipl.FormatConditions.Add acFieldValue, acEqual, "'CAP'"
Me!TypDipl.FormatConditions.Item(2).FontBold = True

mais dès que j'ajoute
Me!TypDipl.FormatConditions.Add acFieldValue, acEqual, "'BEP'"
Me!TypDipl.FormatConditions.Item(3).FontBold = True
"erreur 7966 paramètre trop élevé"

Je te conseille de laisser tomber cette méthode qui consiste à crée r
un formatage conditionnel par le VBA et de plutôt manipuler
l'apparence de tes zones de texte dans la section détail de ton etat,


Je veux bien, mais comment faire apparaître en gras ?

ou d'utiliser le formatage conditionnel via le menu.


Je ne peux pas car c'est limité à 3 valeurs
1 2 3