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 :

Cocher automatiquement une case suivant une autre


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Cocher automatiquement une case suivant une autre
    Bonjour,

    Je suis actuellement en stage ou j'effectue la mise à jour d'une base de données sous accès.

    J'ai 2 formulaires. Je voudrai creer un programme sur le 1er formulaire qui cocherai automatiquement une case du 1er formulaire si une case est cocher dans le 2ème formulaire...

    Je sais pas si c'est clair?
    J'ai jamais fait de programmation et je débute.Help

    Merci d'avance...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Points : 113
    Points
    113
    Par défaut
    Il faut que tu implémente du code sur l'événement Load du deuxième formulaire ouvert, en lui disant (en francais) : si la case est coché sur le 1er alors coche la ici aussi...
    Ce qui donne en programmation (par exemple):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if [Forms]![PremierFormulaire]!CaseACocher.value=1 then
          caseACocher2=1
    else
          caseACocher2=0
    endif

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Re
    Merci bcp

    j'ai rajouter une commande pour qu'il ouvre le 2ème formulaire lors de l'ouverture du 1er sinon ca marchait pas

    Le problème c'est que sur 518 enregistrement y'en a15 avec lesquels ca marche pas ??

    Peut être en rajoutant une 2ème condition, comment pourrait je dire si un champ commence par la lettre K?

    Et est-il possible que l'ouverture du 2ème formulaire soit en mode caché?

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    brj,

    la valeur qui indique que la case est cochée c'est -1 (ou True)

    ou plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          caseACocher2=[Forms]![PremierFormulaire]!CaseACocher.value

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Re
    J'ai essayé les 2 méthodes avec -1 et la rapide et ça donne toujours le même résultat ya des beug...

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    c'est confus

    le code donné c'est juste pour cocher une case d'un formulaire en fonction d'une case d'un autre formulaire
    tu parles de 518 enregistrements, c'est quoi?

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Oui c'est bien ca.

    518 enregistrement dans le 1er formulaire ou le formulaire contient 518 fiches..

    Peut-être qu'il ya trop de données pour que ca marche

  8. #8
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    ok donc le premier formulaire est en mode continu
    et tu veux cocher toutes les lignes?
    la case à cocher du premier formulaire est indépendante ou est-ce qu'elle a un champ source?

    à priori il faudrait que cette case à cocher soit dépendante d'un champ sinon ça n'a pas beaucoup d'intérêt, elle n'aurait qu'une seule valeur identique pour toutes les lignes

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Re
    Je suis pas sure d'avoir bien compris mais si c'est ce que je pense elle a un champ source dans sa table associée

    Peut être que je dois effectuer la procédure sur autre chose que l'evènement load?

  10. #10
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    ok donc il y un champ derrière la case à cocher, c'est déjà ça

    sinon tu veux mettre à jour toutes les case à cocher de la table
    ou juste celle affichées dans le formulaire?

    genre :
    - il y 500 lignes dans la table
    - tu filtres à l'affichage du formulaire et il n'y a que 300 lignes d'affichées
    - --> tu veux changer les 500 lignes ou les 300 lignes affichées??

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Re
    Je veux changer les 500 lignes de la table et du formulaire

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bon alors si c'est toute la table tu lances une requête SQL
    et tu raffraichis le formulaire

    Le code suivant est à mettre dans l'événement "après mise à jour " de la case à cocher du second formulaire (pas sûr d'avoir compris l'enchaînement des événements entre les formulaires) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Docmd.runsql "update LeNomDeTaTable set LeNomDuChamp = " & Me.[LeNomDeLaCaseACocher].Value
    Forms![LeNomDuPremierFormulaire].Refresh

  13. #13
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Je dois lancer une requête SQL qui cocherai les cases dans la 1ère table suivant les cases de la 2ème table?

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    non mais tu n'expliques pas clairement ton problème

    tu dis au début :
    une case du 1er formulaire si une case est cocher dans le 2ème formulaire
    alors que je crois comprendre maintenant que tu as deux formulaires en mode continu (plusieurs enregistrements affichés en même temps) et tu voudrais que les enregistrements sélectionnés dans le deuxième formulaires le soient également dans le premier
    mais tu parles d'une table1 et d'une table2 :
    quel est le lien entre ces deux tables?

    si c'est ce que j'ai compris, il faut parcourir le deuxième formulaire et mettre à jour le premier ligne par ligne, mais quel est le lien entre une ligne du premier formulaire et une ligne du second

    et quand doit se faire la synchronisation entre les deux formulaires?
    au chargement, à chaque modif, ...

  15. #15
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Les 2 tables correspondent respectivement aux 2 formulaires et elles sont liées par une relation un a plusieurs.

    Je voulais que si on coche une case dans la table1/Formulaire1, ca mette à jour automatiquement une case dans la table2/Formulaire2 en fonction des valeurs (cocher ou non).
    Pas facile à expliquer

  16. #16
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    alors dans le premier formulaire, sur l'événement "après mise à jour de la case à cocher :
    Code à tester : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Docmd.runsql "update LeNomDeTaTable2 set LeNomDuChampCaseACocher2 = " & _
              Me.[LeNomDeLaCaseACocher1].Value & _
              " where LeNomDeLaCle2 = '" & Me.[LeNomDeLaCle1] & "'"
    Forms![LeNomDuFormulaire2].Refresh

    si la clé est numérique, il faut enlever les apostrophes qui sont là pour du texte uniquement

  17. #17
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    J'essai de bidouiller mais pour l'instant ca fait rien..

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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