IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Mis en couleur d'enregistrements dans un formulaire continu


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2020
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Mis en couleur d'enregistrements dans un formulaire continu
    Bonjour,
    j'ai un formulaire avec un sous-formulaire.
    Dans les données de mon sous formulaire, j'ai 3 champs (couleur_R, couleur_V et couleur_B) et un champ de données

    J'aimerai appliquer la couleur de fond (correspondant au RVB) sur le champ de données.

    J'ai essayé de créer une mise en forme conditionnelle en VBA mais je crois qu'access me limite à 3 MEFC avec une expression.
    J'ai essayé de définir les propriétés backcolor par le VBA mais, ça l'applique sur l'ensemble des enregistrements et non pas en fonction du champ de données.

    J'ai fait pas mal de recherche dans ce forum et sur le net et je n'ai rien trouvé qui réponde à mon besoin. Aussi je me tourne vers vous.
    Si quelqu'un a une piste, je suis preneuse.

    D'avance merci !
    Nicole

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Quelle version d'Access utilises-tu ?

    Depuis la version 2007 la mise en forme conditionnelle permet beaucoup plus que 3 règles, donc si tu peux c'est la solution la plus simple.

    Pour les versions antérieures, il faut traiter cela comme l'affichage conditionné d'une image dans un formulaire continu.
    Le rectangle de couleur étant en fait une image de rectangle de couleur (dans un fichier .jpg).
    Fait une recherche sur cela tu devrais trouver ton bonheur.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2020
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci d'avoir pris le temps de répondre.
    Je suis en Access (dernière version) via office 365

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        'Va chercher la liste des tâches
        Texte_SQL = "SELECT * FROM Couleurs_Thematiques"
        Set MonTheme = CurrentDb.OpenRecordset(Texte_SQL)
       '
        'On supprime toutes les mises en forme conditionnelles
        Me.Nom_tache.FormatConditions.Delete
     
        MonTheme.MoveFirst
        'pour chaque tâche
        Do While Not MonTheme.EOF
            'On définit la couleur de fond et de police correspondant à la tâche
            Me.Nom_tache.FormatConditions.Add acExpression, , "[Them_Tache]= '" & MonTheme![Thème] & "'"
            Me.Nom_tache.FormatConditions.Item(IntI).ForeColor = RGB(MonTheme!Couleur_police_R, MonTheme!Couleur_police_G, MonTheme!Couleur_police_B)
            Me.Nom_tache.FormatConditions.Item(IntI).BackColor = RGB(MonTheme!Couleur_fond_R, MonTheme!Couleur_fond_G, MonTheme!Couleur_fond_B)
            IntI = IntI + 1
            MonTheme.MoveNext
        Loop
    J'ai un message d'erreur dès que IntI=3 : "Le paramètre que vous avez entré est trop élevé"

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Je ne l'ai jamais fait par code dans une version récente. Il est possible qu'il y ai encore la limitation au niveau du VBA ou qu'il faille utiliser une autre méthode.

    Par l'interface de conception, bouton Mise en Forme conditionnelle, Onglet Format en mode création de formulaire cette limitation n'existe plus.

    Je viens de faire un test avec 4 règles sans problème.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2020
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    oui, merci.
    J'avais aussi essayé.

    Merci de vous être penché sur mon problème.

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    On dirait que c'est la création qui n'est pas possible en VBA.
    Si tu crées tes règles à la main tu peux les modifier.
    Ici un post à ce sujet.
    https://www.utteraccess.com/forum/in...wtopic=2034035
    Il y a un exemple de code qui va jusqu'à 7 règles.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2020
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour, merci pour cet article, mais l'utilisation des 7 règles est uniquement au niveau format, pas dans la modification de l'expression. Et c'est là que le problème se situe.

    J'ai aussi essayé de créer plusieurs mises en forme conditionnelle pour n'avoir qu'à les modifier mais là encore, j'ai un message d’erreur.

    Le problème est dès qu'on cherche à faire de la mise en forme conditionnelle avec des expressions par vba !
    Nicole

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    C'est un cas typique (et frustrant) de produit "à moitié cuit" comme les macros de données et les formulaires de navigation.

    Une idée peut-être, comme tu peux appeler une fonction VBA dans une mise en forme conditionnelle, peut-être peux-tu déléguer le calcul de l'expression.
    Un truc du genre dans l'expression =MaFonctionVBA(param1, param2, ...) avec MaFonctionVBA qui retourne true ou false.
    Tu crées éventuellement beaucoup plus de règles que nécessaire et tu "choisis" celles que tu veux.
    On peut même imaginer que ce choix soit dans une table donc relativement plus facile à mettre à jour.
    Bon c'est un peu passer par Marseille pour aller de Paris à Lille mais si ça marche et que les temps de réponse sont convenables c'est peut-être une option.

    Bon sinon il te reste la solution avec les images conditionnées, si tu peux l'utiliser, ou alors trouver une autre idée de mise en forme.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Toujours dans l'idée de contournement je n'ai jamais essayé dans une MFC, mais connais-tu Eval() qui te permet de faire un calcul à partir d'une chaîne de caractères.

    J'essaierai quelque chose comme : =Eval(DFirst("Expression"; "tblParamExpression"; "[IdRegle]=1")) et dans la table [tblParamExpression] et le champ [Expression], tu mets le calcul que tu veux faire genre "=(Unevaleur=UneAutreValeur)".

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2020
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Non, je ne connaissais pas cette fonction. Je vais essayer, merci

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Je ne l'ai jamais fait par code dans une version récente. Il est possible qu'il y ai encore la limitation au niveau du VBA ou qu'il faille utiliser une autre méthode.

    Par l'interface de conception, bouton Mise en Forme conditionnelle, Onglet Format en mode création de formulaire cette limitation n'existe plus.

    Je viens de faire un test avec 4 règles sans problème.

    A+
    Bonjour @marot_r
    Je me connecte à cette discussion car j'ai essayé en access2007, et, je n'arrive pas avec l'interface, a dépasser 3 conditions.
    Onglet Création / Mise en forme conditionnelle / et fenetre ci dessous bloquée à 3 conditions
    Nom : AccessConditionnel.jpg
Affichages : 85
Taille : 66,2 Ko
    J'ai loupé quelque chose ?

  12. #12
    Futur Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2020
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour Lemin, je crois que c'est après access 2007 que ce n'est plus limité.

  13. #13
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Autant que je sache c'est à partir de 2007 mais il faut que la base soit une base 2007 (accdb) et pas un ancien format (mdb) qu'on peut continuer àutiliser avec les nouvelles versions.

    Ta base est bien au format 2007 ?

    Attention si tu la convertis c'est un aller sans retour ou presque. Une fois en format 2007 il est très difficile de revenir au format antérieur.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  14. #14
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Autant que je sache c'est à partir de 2007 mais il faut que la base soit une base 2007 (accdb) et pas un ancien format (mdb) qu'on peut continuer àutiliser avec les nouvelles versions.

    Ta base est bien au format 2007 ?

    Attention si tu la convertis c'est un aller sans retour ou presque. Une fois en format 2007 il est très difficile de revenir au format antérieur.

    A+
    Oui, ma base est bien en .accdb

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/05/2014, 19h55
  2. [Toutes versions] Repérage de l'enregistrement dans un formulaire continu
    Par BaseAccess dans le forum IHM
    Réponses: 9
    Dernier message: 20/09/2012, 12h13
  3. Réponses: 2
    Dernier message: 02/07/2011, 12h39
  4. [AC-2007] supression d'un enregistrement dans un formulaire continu
    Par alex77140 dans le forum IHM
    Réponses: 5
    Dernier message: 03/07/2009, 07h46
  5. Réponses: 3
    Dernier message: 24/04/2007, 19h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo