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 :

Débutant .. Champ True à rendre False


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Débutant .. Champ True à rendre False
    Bonjour vous tous,

    J'aimerais avoir de l'aide. Dans un formulaire qui contient les champs suivants (Nom client, Adresse, Champ oui/non) j'aimerais effectuer cette action.

    Quelques nom client qui ont été choché oui dans le champ oui/non doivent maintenant être décoché. Il serait trop long de les décocher tous un par un. Alors j'aimerais faire un bouton pour qu'il se décoche tous en même temps. Je n'y arrive pas. Pourriez-vous m'aider. Ce formulaire est basé sur une requête.

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    J'ai ce code qui fonctionne, y'a peut être plus facile je sais pas trop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim I As Integer
    Dim a As Integer
    Dim requete As Recordset
    sql = "select count(*) from ta_table;"
    Set requete = CurrentDb.OpenRecordset(sql)
    a = requete.Fields(0)
    requete.Close
    Set requete = Nothing
    For I = 1 To a
    If ta_case_à_cocher = True Then ta_case_à_cocher = False
    End If
    DoCmd.GoToRecord , , acNext
    Next I
    Ca te fait une boucle de ton premier à ton dernier enregistrement et ça vérifie la valeur de ta case à cocher. Si elle est a oui, alors sa la passe à non

  3. #3
    Membre actif Avatar de SeaWolf601
    Inscrit en
    Août 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 254
    Points : 256
    Points
    256
    Par défaut
    Avec une requete de mise à jour ça marche pas ?

    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
    Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi !

    Albert Einstein

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE matable SET  oui_ou_non = False WHERE oui_ou_non=True;
    Elle est pas belle la vie ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Rendre Champ True en False
    Merci de vos conseils.

    Vous savez je suis pas très expérimenté et ça fonctionne pas.
    Voici ci ce que j'ai essayé.

    J'ai crée mon bouton dans mon formulaire Access, cliqué droit souris dans les propriétés du bouton. Dans évenement j'ai choisis sur clik de la souris creer un code avec le générateur de code. Me voilà dans VB. J'ai copié, collé ceci.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE matable SET  oui_ou_non = False WHERE oui_ou_non=True;

    Ça ne fonctionne pas. Ceci me donne une boîte d'erreur indiquant Erreur de compilation, erreur de syntaxe. J'imagine que je dois ajouter le nom de la requête ou la table, des champs ou autres...

    Alors j'ai essaiyé ceci :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE R_CarteNoelFalse SET  oui_ou_non = False WHERE oui_ou_non=True;


    Besoin de votre aide.
    Merci

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Essaie d'attaquer une table plutôt qu'une requête lors d'un SQL UPDATE.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Ça ne fonctionne pas non plus. Toujours la boîte d'erreur indiquant Erreur de compilation, erreur de syntaxe. Me sélection le SET dans le code.

    Voici le code que je mets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Commande10_Click()
    
    UPDATE T_Carte SET oui_ou_non = False WHERE oui_ou_non=True;
    
    
    End Sub
    Merci

  8. #8
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    On ne balance pas comme ça un SQL dans du code VBA.

    la bonne syntaxe est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "UPDATE ......."
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Ça commence à être mieux mais pas tout à fait au point.

    Voici le code que j'ai inscrit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "UPDATE  T_Carte SET oui_ou_non = False WHERE oui_ou_non=True;"
    Une boîte entrez la valeur du paramètre s'ouvre et me demande d'inscrire oui ou non : Je réponds non. Un message d'erreure s'ouvre et dit. Erreur d'exécution 3073. L'opération doit utiliser une requête qui peut être mise à jour. ???

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    J'ai essayé ce code. Ça fonctionne. Il passe tout mes enregistrements et les décoches tous. Mais quand il arrive à la fin. Une boîte s'ouvre et dit :
    Erreur d'éxécution 2105. Impossible d'atteindre l'enregistrement spécifié.

    Voici le code utilisé.

    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
    Private Sub B_DeselectionnerTout_Click()
     
    Dim I As Integer
    Dim A As Integer
    Dim requete As Recordset
    sql = "select count(*) from T_Contacts;"
    Set R_ContactsNoel = CurrentDb.OpenRecordset(sql)
    A = R_ContactsNoel.Fields(0)
    R_ContactsNoel.Close
    Set requete = Nothing
    For I = 1 To A
    If CocherCarteNoel = True Then
    CocherCarteNoel = False
    End If
    DoCmd.GoToRecord , , acNext
    Next I
     
    End Sub
    MERCI

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    il doit surement aller à tout tes enregistrements + 1, rien de bien grave, à part si tu souhaite faire la manip réguliérement

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Ça fonctionne très bien, parcontre les utilisateurs qui utiliserons ce formulaire se poseront bien des questions lorsque la boîte s'ouvrira. As-tu une solution ?

    Merci

  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
    Salut,
    Il faut tester si tu es en fin de recordset ou pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set R_ContactsNoel = CurrentDb.OpenRecordset(sql)
    R_ContactsNoel.moveFirst
    While R_ContactsNoel.EOF = False
        If CocherCarteNoel = True Then
            CocherCarteNoel = False
        End If
        R_ContactsNoel.MoveNext
    Wend

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 31
    Points : 34
    Points
    34
    Par défaut
    Pourquoi ne pas utiliser la requete de random ET un bouton tout simple pour executer cette requete

  15. #15
    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 gomi
    Pourquoi ne pas utiliser la requete de random ET un bouton tout simple pour executer cette requete
    Parce qu'il y a plusieurs moyen de faire... et qu'elle a (à priori) choisi celui-ci.
    Si elle avait adapté le code de caféine à son cas, elle aurait fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "UPDATE  T_Contacts SET CocherCarteNoel = False WHERE CocherCarteNoel =True;"
    C'est certain qu'il y a une différence au niveau des noms...

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Je suis un peu confuse, je ne comprends pas très bien ce qu'il faut faire. Le code de caféine je l'ai essayé et ça ne fonctionnait pas. Je crois que c'est moi qui sait pas trop comment faire et celui-ci :

    Il faut tester si tu es en fin de recordset ou pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set R_ContactsNoel = CurrentDb.OpenRecordset(sql)
    R_ContactsNoel.moveFirst
    While R_ContactsNoel.EOF = False
        If CocherCarteNoel = True Then
            CocherCarteNoel = False
        End If
        R_ContactsNoel.MoveNext
    Wend
    Je ne comprends pas non plus ou l'ajouter.

  17. #17
    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
    Tu as 2 possibilités pour mettre à jour tes données : soit le code type de caféine avec la requete update soit en utilisant DAO.

    Dans mon précédent message, tu trouvera les 2 solutions.

    Pour ce qui est du code que tu cites, il est à mettre à la place de la boucle for.
    Cela fait exactement la même chose (enfin à peu de chose près) mais ça s'arrête lorsque la table ne contient plus d'enregistrements.

    Une petite modification quand même, pas besoin de passer par la variable SQL. Passes directement par le nom de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set R_ContactsNoel = CurrentDb.OpenRecordset("T_Contacts")

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Merci pour les infos. J'essai ceci.

Discussions similaires

  1. [débutant] champs en VBA
    Par Skizo dans le forum Access
    Réponses: 18
    Dernier message: 16/05/2006, 17h16
  2. [EJB2.1 Entity] [Débutant] Champs auto-incrémenté (identity)et EJB
    Par Houbbba dans le forum Java EE
    Réponses: 9
    Dernier message: 04/04/2006, 19h15
  3. Réponses: 1
    Dernier message: 03/03/2006, 12h07
  4. [XSD][Débutant] champs obligatoires ?
    Par cvacavant dans le forum Valider
    Réponses: 7
    Dernier message: 02/02/2006, 14h51
  5. probleme affichage visible = true ou false
    Par Hitmaaan dans le forum Access
    Réponses: 4
    Dernier message: 29/09/2005, 13h17

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