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 :

Problemes multiples avec "case à cocher"


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut Problemes multiples avec "case à cocher"
    Bonjour,

    J'ai plusieurs questions à propos des fameuses cases à cocher:

    Prems:

    Je dispose dans un formulaire de plusieurs cases à cocher, j'aimerais que sur la même colonne une seule case à cocher puisse être activée à la fois, en gros l'activation d'une case de la colonne, désactive la case de la colonne précédemment activée.

    Deuz:

    J'ai une case dans mon formulaire, qui, si c'est possible, me permetterait de modifier la valeur d'une table en activant cette case. Ma table dispose d'une valeur etat qui est sur "ouvert" par défaut, j'aimerais que lorsque je clique la case à cocher de mon formulaire, cette valeur de ma table passe sur "fermé".

    C'est tout pour le moment :p

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Je dispose dans un formulaire de plusieurs cases à cocher, j'aimerais que sur la même colonne une seule case à cocher puisse être activée à la fois, en gros l'activation d'une case de la colonne, désactive la case de la colonne précédemment activée.
    alors c'est un groupe d'option qu'il faut utiliser, pas des cases à cocher

    J'ai une case dans mon formulaire, qui, si c'est possible, me permetterait de modifier la valeur d'une table en activant cette case. Ma table dispose d'une valeur etat qui est sur "ouvert" par défaut, j'aimerais que lorsque je clique la case à cocher de mon formulaire, cette valeur de ma table passe sur "fermé".
    En VBA, utilse l'evt _after_Update de ta case à cocher :

    if maCoche =True then
    Tu mets dans un String ta phrase SQL :
    maPhraseSql="UPDATE MaTable SET mavaleur='Fermé' ;"
    Ensuite tu l'exécutes :
    DB.excute maPhraseSql
    ....

    Et ça doit rouler ...
    "Always look at the bright side of life." Monty Python.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par micniv
    alors c'est un groupe d'option qu'il faut utiliser, pas des cases à cocher



    En VBA, utilse l'evt _after_Update de ta case à cocher :

    if maCoche =True then


    Et ça doit rouler ...
    Jusque là ca va

    Citation Envoyé par micniv
    Tu mets dans un String ta phrase SQL :
    maPhraseSql="UPDATE MaTable SET mavaleur='Fermé' ;"
    Ensuite tu l'exécutes :
    DB.execute maPhraseSql
    ....
    La ca va plus! :p

    "Tu mets dans un string" ??? C'est à dire? Moi j'ai mis ca: Dim maPhraseSql As String

    Lorsque je lance le code brut comme ca:
    if maCoche =True then
    Dim maPhraseSql As String
    maPhraseSql="UPDATE MaTable SET mavaleur='Fermé' ;"
    DB.execute maPhraseSql

    Avec mes parametres bien sur, il me lance le debogueur sur :

    DB.execute maPhraseSql


    Mais je ne sais pas comment on fait pour faire ce que tu appelles "mettre dans un String"

    Merci

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Tu mets dans un string" ??? C'est à dire? Moi j'ai mis ca: Dim maPhraseSql As String
    J'aime bien faire un peu d'humour, alors tu as bien compris : déclarer maPhraseSql de type String. (pas de type Petitt Kulott ! )

    l'autre point :
    DB.execute maPhraseSql
    tu dois déclarer DB :
    (nécessite une réference DAO )

    A+
    "Always look at the bright side of life." Monty Python.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Toujours pas

    Mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Cocher36_AfterUpdate()
    Dim DB As DAO.Database
    Dim modif As String
    If Cocher36 = True Then
    modif = "UPDATE Table de demandes SET Etat='Fermé' ;"
    DB.Execute modif
    End If
    End Sub
    Quand je coche la case j'ai:

    Erreur d'execution '91':
    Variable Objet ou variable de bloc with nom défini

    J'ai regarde un peu l'aide, je n'ai pas de variable objet de declaree donc pas de SET, peut etre un bloc with... end with a implementer?

    Je debute en access... au cas ou ca se serait pas vui

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,
    Juste une question ??
    la première chose qui me vient à l'idée : as tu coché la référence DAO ?

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    A ce stade, db ne vaut rien. Il manque quelque chose du style

    Set Db=CurrentDb

  8. #8
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    je l'ai pas vu celui là

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    J'en arrive donc à cela comme code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Cocher36_AfterUpdate()
    Dim DB As DAO.Database
    Set DB = CurrentDb
    Dim modif As String
    If Cocher36 = True Then
    modif = "UPDATE Table de demandes SET Etat='Fermé' ;"
    DB.Execute modif
    End If
    End Sub
    Mais ca ne marche toujours pas!

    J'ai une "erreur de syntaxe dans l'instruction update" ! Peut etre un probleme lie a ce que disait Kikof: "la première chose qui me vient à l'idée : as tu coché la référence DAO ?". Ou puis je voir ca?

    Merci pour votre aide !


    Ajout des balises codes : essaie d'y penser => bouton #

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Points : 166
    Points
    166
    Par défaut
    Tu peux vérifier dans VBA, menu Outils/Références.

  11. #11
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Quand tu as des noms avec des espaces, il faut les mettre entre crochets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    modif = "UPDATE [Table de demandes] SET [Table de demandes].Etat='Fermé' ;"
    Quand tu es sur un module, menu Outils références puis tu coches la référence manquante.

  12. #12
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    C'est bon ça marche, enfin presque

    Parcequ'il me passe toute ma table sur 'fermé' et pas seulement l'enregistrement auquel correspond mon formulaire!

    Idem avec mon histoire de menu d'options du debut, si je change sur un enregistrement il me duplique la chose sur le reste
    Je vais deja verifier mon formulaire

  13. #13
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par guidzit
    Parcequ'il me passe toute ma table sur 'fermé' et pas seulement l'enregistrement auquel correspond mon formulaire!
    Ajoute une clause where à ton SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    modif = "UPDATE [Table de demandes] SET [Table de demandes].Etat='Fermé' WHERE [Table de demandes].Cléprimaire = " & Me.ChampCléPrimaire & ";"
    Idem avec mon histoire de menu d'options du debut, si je change sur un enregistrement il me duplique la chose sur le reste
    Je vais deja verifier mon formulaire
    Idem que ci-dessus : insère la clause where.

  14. #14
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Marvellous !


    Nickel


    Merci beaucoup

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

Discussions similaires

  1. Probleme avec une case à cocher
    Par loréline dans le forum GTK+ avec C & C++
    Réponses: 12
    Dernier message: 22/04/2007, 19h24
  2. Comment creer un choix multiple avec des cases a cocher ??
    Par pedrosystem dans le forum Access
    Réponses: 5
    Dernier message: 09/03/2006, 10h36
  3. Pb avec les cases à cocher
    Par magic8392 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 03/03/2005, 13h44

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