Bonsoir,
Comment on fait pour cocher toute les cases d'un seul coup
(exemple comme dans une boite de messagerie ou il y a cocher tout / OU désélectionner tout
Merci Justine
Bonsoir,
Comment on fait pour cocher toute les cases d'un seul coup
(exemple comme dans une boite de messagerie ou il y a cocher tout / OU désélectionner tout
Merci Justine
Salut, raconte un peu plus stp. Les case se trouve ou? Sur un formulaire, dans un table? Qu'est ce que tu veux exactement?
Salut, alors mes cases a cocher se trouve dans un formulaire en mode tabulaire
et tu les à nommé comment, ses case à coché?
Bonjour,
A priori, ton formulaire est basé sur une table/requête. Cette case à cocher est liée à un champ de la source de ton formulaire ou est indépendant ? Il faut être précis si tu veux de l'aide rapidement et efficacement.
Si la checkbox est liée à un champ d'une table, il suffit d'exécuter une requête de mise à jour sur la table contenant le champ puis de rafraîchir le formulaire.
Si tu veux faire comme pour une boîte mail, l'idée est de placer une checkbox indépendante dans l'en-tête du formulaire avec une valeur par défaut égale à 0. Puis, sur l'évènement, Après MAJ de celle-ci, il faut placer un code de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub maCheckBoxPrincipale_AfterUpdate() CurrentDb.Execute "UPDATE maTable SET monChamp = " & Me.maCheckBoxPrincipale & " WHERE monCritere;" Me.Refresh End Sub
L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!
Paidge
alors formulaire est basé sur une table
eleve(IDELEVE, selection, nom, prenom, sexe, ect, ect)
Mon formulaire est en mode tabulaire (en premier champs s'affiche la sélection)
La case à cocher est donc lié à ma table. (je ne sais pas comment faire la requete )
Donc j'ai mis une case à cocher indépendante dans l'entête de formulaire avec la valeur par défaut à 0
Ensuite j'ai fais comme tu m'as dis : sur ma case à cocher indépendante j'ai cliqué sur propriété puis sur événement puis sur après maj et j'ai placé le code que tu m'as passé
et quand je test (quand je clique donc sur ma case à cocher indépendante, de manière à faire tout cocher ) y a rien qui se passe
voici ce que j'ai mis exactement
JUSTINE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Cocher65_AfterUpdate() CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & " WHERE selection;" Me.Refresh End Sub
Faut que tu révises le SQL
Comme ton formulaire est basé sur une table, tu veux cocher les cases pour tous les enregistrements de ta table. Donc tu n'as pas à mettre de clause WHERE ^^
Si ton formulaire était basé sur une requête, par exemple une requête qui t'affiche que les élèves masculins, à ce moment-là, ton souhait aurait été de cocher la case uniquement pour les hommes A ce moment, la requête de mise à jour aurait été :
Code : Sélectionner tout - Visualiser dans une fenêtre à part CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & ";"
Code : Sélectionner tout - Visualiser dans une fenêtre à part CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & " WHERE sexe='M';"
L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!
Faut plutot que j'apprenne !!
Alors j'ai mis le code
et ça ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & ";"
Faut que t'apprennes à chercher ce qui ne va pas aussi
Déjà, j'espère que tu n'as pas enlevé le Me.refresh Sinon ton formulaire n'est pas rafraîchi.
Pour vérifier, par exemple, tu peux mettre :
Afin d'afficher une boîte de dialogue qui t'affichera la valeur de Cocher65 et permettra de voir si ton code s'exécute bien....Et quand ça ne marche pas, essayes d'être plus précise même si je me doute que, dans le cas présent, il ne se passe rien. Parce qu'à force, les gens vont rechigner à t'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub Cocher65_AfterUpdate() Msgbox Me.Cocher65 CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & ";" Me.Refresh End Sub
L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!
ah oui désoler ça marche
mais j'ai un autre probleme maintenant
c'est qu à la base j'ai voulu faire tout cocher / tout decocher
pour supprimer des élément d'un seul coups ( sans cocher un par un )
mais je me suis rendu compte que sur un filtre ça ne fonctionne pas
parce que la j'ai testé en choisissant dans mon filtre : CM2
Donc ça m'affiche que les CM2
Donc imaginons que je veux supprimer tous les cm2
je me serai servi de ce fameux "tout cocher" les cm2
et je supprime
mais le problème c'est que ça ma pas simplement coché que mes CM2 c'est que ça m'a tout coché en réalité (sauf que je le vois pas) et donc quand j'ai lancé la suppression ça supprime tout vu que ça a tout cocher
mais moi je croyais que ça cochait juste ce qui apparaissait à l'écran enfin de mon filtre
J'espere que vous m'avez comprise
désoler
D'où ma remarque et ma proposition avec la clause WHERE...Mais comme tu ne connais pas le SQL tu n'avais pas cerné ^^
Si ton filtre est dynamique (c'est-àdire que ça peut être CM2 ou autre chose), il faut le récupérer quelque part...Tout dépend la manière dont tu appliques le filtre. Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Cocher65_AfterUpdate() CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & "WHERE classe='CM2';" Me.Refresh End Sub
ou en core :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Cocher65_AfterUpdate() CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & "WHERE classe='" & Me.maTextBoxQuiStockeMaClasse & "';" Me.Refresh End Sub
Je te conseille, de suivre le lien que je t'ai donné pour apprendre le SQL C'est indispensable pour faire de la base de données. En l'occurence, quand tu fais une requête UPDATE (requête de mise à jour) si tu mets pas de clause WHERE, tu agis sur toute la table
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Cocher65_AfterUpdate() CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & "WHERE " & Me.Filter & ";" Me.Refresh End Sub
L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!
merci Paidge pour toute ton aide
merci aussi pour le lien. Je vais suivre les cours de sql que tu m'as donné ( pour info tu as appris le sql en combien de temps ? ça s'apprend vite ? )
POur le moment j'essaye de faire marcher mon cocher tout/ tout décocher selon le filtre
voici le filtre qu'il y a dans mon formulaire
mon filtre porte comme nom "maliste" est comporte 5 valeurs : "CP";"CE1";"CE2";"CM1";"CM2" et voici son code :
Voilà au début j'avais pas tilté ( je croyais que quand je sélectionnerai une valeur dans mon filtre et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub maliste_AfterUpdate() If maliste > "" Then Me.Filter = "Classe='" & maliste & "'" Me.FilterOn = True Else Me.Filter = "" Me.FilterOn = False End If Me.Requery Me.Refresh End Sub
qu'en suite je cocherai tout et bien je croyais que ça allait sélectionner que mon filtre mais je comprends maintenant
l'importante de ce WHERE et de comprendre le sql ( la syntaxe ma l'air ÉNORMÉMENT DUR à comprendre mais je fais des effort pour comprendre)
BREF avec les codes que tu m'as passé j'ai testé en mettant ça comme code dans ma case à coché indépendante mais ça ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub Cocher65_AfterUpdate() MsgBox Me.Cocher65 CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & "WHERE " & Me.Filter = "Classe='" & maliste & "'" Me.Refresh End Sub
Justine91,
En appliquant un filtre, tu ne fais qu'afficher une partie de ta table (ou de ta requête). La requête SQL travaille sur toute la table, d'ou l'obligation de repasser le filtre.Voilà au début j'avais pas tilté ( je croyais que quand je sélectionnerai une valeur dans mon filtre et
qu'en suite je cocherai tout et bien je croyais que ça allait sélectionner que mon filtre mais je comprends maintenant
l'importante de ce WHERE et de comprendre le sql ( la syntaxe ma l'air ÉNORMÉMENT DUR à comprendre mais je fais des effort pour comprendre)
Maintenant, regarde bien ton code dans sa première partie, l'erreur est facilement décelable...
ton filtre contient par exemple "Classe=CM2", tu peux afficher un msgbox pour visualiser si tu veux la valeur de ton filtre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub maliste_AfterUpdate() If maliste > "" Then Me.Filter = "Classe='" & maliste & "'" Me.FilterOn = True Else Me.Filter = "" Me.FilterOn = False End If Me.Requery Me.Refresh End Sub
Regarde ensuite ta deuxième partie sur la requête :
Tu redoubles ton filtre ce qui revient à dire where "Classe=CM2" = "Classe=CM2" donc soit tu passes le filtre (me.filter) soit ton critère ("Classe='" & maliste & "'")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub Cocher65_AfterUpdate() MsgBox Me.Cocher65 CurrentDb.Execute "UPDATE eleve SET selection = " & Me.Cocher65 & "WHERE " & Me.Filter = "Classe='" & maliste & "'" Me.Refresh End Sub
Je te laisse creuser un peu
Bonne continuation
petite astuce : tu peux afficher dans ta fenêtre d’exécution de ton module le contenu de ta requête en faisant debug.print, çà aide beaucoup à la recherche d'erreur.
Tu aurais certainement vu l'erreur de suite, et en copiant cette requête dans le QBE (assistant requête), tu aurais matérialisé encore plus facilement si l'affichage dans la fenêtre d'exécution ne te suffisait pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part debug.print "UPDATE eleve SET selection = " & Me.Cocher65 & "WHERE " & Me.Filter = "Classe='" & maliste & "'"
Bon courage
JimBoLion
N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
Retrouvez-moi sur le chat en salon base de données
j'essaye tout pleins de choses, je n'y arrive pas
ça me dit erreur d'exécution '3075'
Erreur de syntaxe (opérateur absent) dans l'expression <<1where classe=">>.
je suis entrain d'essayé pleins de choses mais bon si je maîtrise pas le sql c'est tres dur
voilà une image détaillé de mes variables et de ma page d'affichage si vous pouvez m'aider
Merci
Justine
justine91,
Ne pas oublier ce yes dans la requête que je ne comprends pas. Il doit nous manquer un élément quelque part !
JimBoLion
N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
Retrouvez-moi sur le chat en salon base de données
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager