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

Access Discussion :

Récupérer Valeur d'un champ sur un formuilaire continue [AC-365]


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Septembre 2022
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : Septembre 2022
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Récupérer Valeur d'un champ sur un formuilaire continue
    Bonjour tous le monde,

    Sur un formulaire continue, j'ai 3 champ, [N°], [NOM], [NUMRAPPORT], et un champ indépendant [COULEUR] qui comprend 2 valeur, les lettres "O" et "N", Je prends pour exemple les 6 premiers enregistrements de mon formulaire

    N° NOM NUMRAPPORT COULEUR
    1 NOM1 essai111 O
    2 NOM1 essai222
    3 NOM2 essai333
    4 NOM2 essai444
    5 NOM2 essai555
    6 NOM2 essai666

    Mon problème est que je souhaiterais renseigner la valeur de mon champ couleur en fonction de la valeur du NOM
    la valeur couleur du premier enregistrement est toujours égale à la lettre "O"
    si le nom du 2nd enregistrement est égal au nom du premier alors couleur du second est égal à la couleur du premier donc "O" si différend couleur ="N" .... jusqu'à la fin du formulaire

    pour mon exemple, le champ couleur devra avoir les valeurs suivantes:

    O
    O
    N
    N
    O
    O

    y at-il une solution ?

    Merci pour votre aide

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 090
    Points : 5 207
    Points
    5 207
    Par défaut
    Bonjour,

    Tout d'abord si j'applique les règles je trouve OONNNN donc je ne comprends pas l'exemple !

    Ensuite d'une manière générale une ligne ne connait pas celle qui la précède, d'autant moins que dans la base il n'y a pas de notion d'ordre (cela dépend du tri utilisé pour l'affichage)
    Donc le résultat ne peut pas être obtenu par une formule dans la case du formulaire. Il faut soit utiliser une procédure spécifique soit calculer la valeur juste avant affichage en fonction du tri utilisé (et dans ce cas la valeur ne sera pas modifiée si la ligne du dessus est modifiée)

    Comme c'est compliqué je ne peux pas m'empêcher de me demander à quoi ça sert ? Dit autrement : est-ce la bonne analyse ?
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 585
    Points : 1 080
    Points
    1 080
    Par défaut
    Bonjour,

    Si tes données viennent d'une table il faut faire une requête de mise à jour sur cette table et ensuite une mise à jour de l'affichage (Requery).

    ONTAYG

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Septembre 2022
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : Septembre 2022
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Dans mon exemple, j'ai fait une erreur il fallait lire:

    N° NOM NUMRAPPORT COULEUR
    1 NOM1 essai111 O
    2 NOM1 essai222
    3 NOM2 essai333
    4 NOM2 essai444
    5 NOM3 essai555
    6 NOM3 essai666

    donc couleur doit être
    O
    O
    N
    N
    O
    O

    le formulaire est trié par le champ NOM

    En fait je souhaiterais mettre deux couleur de fonds sur le formulaire continue (Blanc et gris), je souhaiterais mettre le fond blanc en début de formulaire pour les enregistrements portant le NOM1 dès que le nom change le fond passe au gris puis blanc ....

    Je souhaiterais appliquer une Mise en forme conditionnelle à une zone de texte se trouvant en arrière plan dont la couleur de fond changera en gris si la valeur du champ couleur ="N".

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Septembre 2022
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : Septembre 2022
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Une Solution
    J'ai trouvé une solution qui me parait satisfaisante:

    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
    18
    19
    20
    21
    22
    Dim MaCouleur, Avant, Apres As String
    Dim NbEnreg As Integer
     
     
    DoCmd.GoToRecord acDataForm, "Tableau--------", acFirst ' Se positionne sur le premier enregistrement du formulaire
    NbEnreg = DCount("*", "RechercheControle"), compte le nombre d'entregistrement du formulaire basé sur la requête "RechercheControle"
    Avant = Me.Nom_Exploit.Value '  Je mémorise la valeur du premier nom dans la variable (Avant)
    CouleurLigne = "O" '  Je donne la valeur "O" au champ CouleurLigne
     
     
    For x = 1 To NbEnreg je crée une boucle x de 1 sur le nombre d'enregistrement
    MaCouleur = CouleurLigne'  J'attribue la valeur couleurLigne à la variable MaCouleur
     
    DoCmd.GoToRecord acDataForm, "TableauCommission", acGoTo, x ' je deplace le focus sur le prochain enregistrement (Boucle x)
     
    Apres = Me.Nom_Exploit.Value ' je donne la valeur du nom de second enregistrement à la variable Apres
     
    If Apres <> Avant And MaCouleur = "O" Then CouleurLigne = "N" ' 
    If Apres <> Avant And MaCouleur = "N" Then CouleurLigne = "O"
    Avant = Me.Nom_Exploit.Value 'Je reaffecte  la valeur du champ de second enregistrement à la variable Avant, et la boucle continue jusqu'à la fin du formulaire
     
    Next x

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2010, 18h36
  2. Récupérer la valeur d'un champs sur OnKeyDown
    Par robocop2776 dans le forum Access
    Réponses: 1
    Dernier message: 22/06/2007, 17h34
  3. Réponses: 10
    Dernier message: 11/03/2006, 01h51
  4. Réponses: 1
    Dernier message: 22/12/2005, 11h29

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