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

Macros Access Discussion :

Actualisation Code au changement Enregistrement [AC-365]


Sujet :

Macros Access

  1. #1
    Membre du Club
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 42
    Points : 54
    Points
    54
    Par défaut Actualisation Code au changement Enregistrement
    Bonjour, j'ai un petit soucis d'actualisation.

    J'ai un formulaire dans lequel j'ai en en-tête 2 champs de liste déroulante pour rechercher l'enregistrement à afficher. Dans chaque enregistrement j'ai une case à cocher "Commande Fermer" . Je souhaite que si cette case est cochée
    tous les champs de cette enregistrement soit verrouiller alors que si elle n'est pas cochée les champs restent modifiable.

    Nom : Annotation 2019-12-21 134404.jpg
Affichages : 166
Taille : 127,0 Ko

    J'ai donc créé le code suivant mais cela fonctionne à moitié, si je visualise un enregistrement "Fermer" mais lorsque par la suite je visualise un enregistrement dont la case n'est pas coché, mes champs restent quand même verrouillés.

    Nom : Annotation 2019-12-21 134405.jpg
Affichages : 169
Taille : 196,7 Ko

    Merci de m'aider.

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Bonsoir,
    il est d'usage de faire un copier/coller du code entre les balises de code (icône # du menu message), plutôt que d'envoyer une image inexploitable.
    mais lorsque par la suite je visualise un enregistrement dont la case n'est pas coché, mes champs restent quand même verrouillés.
    oui car il considère que "0" ou "-1" ce n'est pas égal à Faux (car Faux c'est 0) donc toute valeur autre que 0 sera toujours égal à Vrai.
    Ton code pourrait fonctionner à la rigueur avec True ou False ou 0 ou -1 mais pas "0" ou "-1".

    Mais il y a plus simple, il suffit d'affecter à la propriété Locked de chaque champ du formulaire la valeur de ChargementFermer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Current()
    Me.Codeclient.Locked = Me.ChargementFermer
    Me.CQB_Reference.Locked = Me.ChargementFermer
    Me.NoBonCommande.Locked = Me.ChargementFermer
    ' et ainsi de suite jusqu'au dernier champ à verrouiller
    End Sub
    De plus cela permet d'écrire 2 fois moins de lignes.
    Me. représente le formulaire courant (celui qui contient le code)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre du Club
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 42
    Points : 54
    Points
    54
    Par défaut
    Merci beaucoup pour vos explications, je dois vous dire que je suis très novice en Code VBA, voici ce que j'ai écrit :


    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
    23
    Private Sub Form_Current()
    Me.CodeClient.Locked = Me.ChargementFermer
    Me.CQB_Reference.Locked = Me.ChargementFermer
    Me.NoBonCommande.Locked = Me.ChargementFermer
    Me.Acheteur.Locked = Me.ChargementFermer
    Me.TypeTransp.Locked = Me.ChargementFermer
    Me.CodeProduit.Locked = Me.ChargementFermer
    Me.Qte_Requise.Locked = Me.ChargementFermer
    Me.DateCommande.Locked = Me.ChargementFermer
    Me.AdresseLivraison.Locked = Me.ChargementFermer
    Me.DateRequise.Locked = Me.ChargementFermer
    Me.UMO.Locked = Me.ChargementFermer
    Me.Date_Expedition.Locked = Me.ChargementFermer
    Me.Qte_charge.Locked = Me.ChargementFermer
    Me.Transporteur.Locked = Me.ChargementFermer
    Me.No_Transport.Locked = Me.ChargementFermer
    Me.CoutTransport -MXN.Locked = Me.ChargementFermer
    Me.CoutInspection -MXN.Locked = Me.ChargementFermer
    Me.CoutChargement -MXN.Locked = Me.ChargementFermer
    Me.CoutAutres -MXN.Locked = Me.ChargementFermer
    Me.Desc_cout_autre.Locked = Me.ChargementFermer
     
    End Sub
    Mais lorsque j'active mon formulaire sur le 1er enregistrement je reçois le message d'erreur suivant Nom : Annotation 2019-12-21 184012.jpg
Affichages : 152
Taille : 11,0 Ko

    Merci

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    bonsoir,
    quelle instruction provoque l'erreur (ligne surlignée en jaune dans VBA) ?

    mauvaise idée d'utiliser des caractères réservés tel que le signe moins dans le nom des champs :
    il faut mettre des crochets pour ceux là :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me.[CoutTransport-MXN].Locked = Me.ChargementFermer
    Me.[CoutInspection-MXN].Locked = Me.ChargementFermer
    Me.[CoutChargement-MXN].Locked = Me.ChargementFermer
    Me.[CoutAutres-MXN].Locked = Me.ChargementFermer
    sans les crochets, VBA va générer un espace avant le -
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre du Club
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 42
    Points : 54
    Points
    54
    Par défaut
    Merci, j'ai ajouté les crochets et j'éviterai à l'avenir de refaire la même erreur.
    Mais j'ai toujours un code d'erreur dont voici une capture d'écran :
    Nom : Annotation 2019-12-22 142904.jpg
Affichages : 144
Taille : 55,7 Ko

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Merci, j'ai ajouté les crochets et j'éviterai à l'avenir de refaire la même erreur.
    as-tu enlevé aussi les espaces que VBA a généré ?
    Me.CoutTransport -MXN.Locked
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Membre du Club
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 42
    Points : 54
    Points
    54
    Par défaut
    Merci de me répondre, j'ai tout corrigé et maintenant cela fonctionne sauf que si je passe d'un enregistrement dont ChargementFermer est à faux vers un enregistrement dont la case est à Vrai cela fonctionne
    très bien mais au contraire si je reviens vers un enregistrement dont la case est à faux mes champs restent tous verrouillés.

    J'ai essayé de mettre Me.Refresh au début du code mais rien ne change

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    j'ai en en-tête 2 champs de liste déroulante pour rechercher l'enregistrement à afficher.
    En fait, c'est sur les listes déroulantes (Click ou AfterUpdate) qu'il faut lancer le code puisque c'est là que ce fait le changement d'enregistrement.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Membre du Club
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 42
    Points : 54
    Points
    54
    Par défaut
    Merci beaucoup de votre aide, tout fonctionne maintenant à merveille.

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

Discussions similaires

  1. [AC-2010] Actualiser liste après changement d'enregistrement
    Par Crickett84 dans le forum IHM
    Réponses: 2
    Dernier message: 01/06/2011, 23h49
  2. Code de changement de la résolution d'un écran
    Par GodGives dans le forum VB 6 et antérieur
    Réponses: 25
    Dernier message: 01/11/2007, 12h27
  3. Quel code pour suppression enregistrement ?
    Par Nessie37 dans le forum VBA Access
    Réponses: 30
    Dernier message: 19/10/2007, 16h51
  4. Actualiser composants quand changement
    Par BATiViR dans le forum Delphi
    Réponses: 1
    Dernier message: 06/04/2007, 16h24
  5. creer un code sur changement d'enregistrement
    Par deglingo37 dans le forum Access
    Réponses: 6
    Dernier message: 22/05/2006, 10h42

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