Bonjour j'aimerais faire un code SQL sur un case a coché qui permettra de voir si case coché les "affecté" et si case non coché de voir les "non affecté", qui apparaitra depuis une liste déroulante, je sais pas par ou commencer
Merci,
Version imprimable
Bonjour j'aimerais faire un code SQL sur un case a coché qui permettra de voir si case coché les "affecté" et si case non coché de voir les "non affecté", qui apparaitra depuis une liste déroulante, je sais pas par ou commencer
Merci,
Salut,
Tu commences par créer ta requête avec le champ case à cocher.
Ensuite, tu te places dans la grille de ta requète sur la première colonne vide, dans la première ligne.
Là tu peux écrire une formule du même type que dans Excel :
Le mot remarque, placé au début sera le nom de ce champ calculé. Que tu peux utiliser comme tu veux.Code:Remarque: VraiFaux([Tonchamp]=Oui;"affecté";"pas affecté")
Pour la mise en place de la formule, il existe un outil : le générateur d'expression. Il est représenté par une bagette magique noir dans le ruban.
En espérant que cela puisse t'aider.
comment puis-je commences par créer un requête avec le champ case à cocher? il faut écrire le nom du champ?
Ensuite, je me places dans la grille de ma requète sur la première colonne vide, dans la première ligne, comment s'appelle la ligne en question?
désolé de pas avoir pas bien compris
merci pour ta patience ainsi que ta réponse
Salut vinkey_33
Si je comprends correctement ta demande, tu as un formulaire et tu veux afficher les lignes dont le statut est
- affecté si case Cochée
- non affecté si case non cochée
Question as-tu pensé à l'état pour les voir tous => non affecté + affecté?
Si état
- binaire => case à cocher
- ternaire => zone liste
Commençons par un exemple simple :
Coté IHM
- Un formulaire avec :
- Propriétés
- Fromat : Affichage par défaut = Formulaire unique
- Evénement : Load
- Une zone entête de formulaire --> En mode création rouvre ton formulaire clic droit
- Une case à cochée dans l'entête
- Propriétés
- Autre: Nom = chkAffecte
- Evénement : Après MAJ (AfterUpdate)
- Données : Triple état = Non
- Zone détail toujours --> Par défaut toujours visible
Coté bdd, ta table avec j'imagine un champ genre
- Soit affecté de type Oui/ Non ------------> cas de mon exemple
- Soit statut de type caractères avec valeur "affecté/non affecté"
Tu auras le code suivant dans ton éditeur texte VBA sous les événements initialisés
Voilà pour une approche rapide. Dans le cas d'une vue des lignes sous forme d'une feuille de données, il faudra alors passer par la création d'un sous-formulaire à insérer dans le formulaire maitre.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Private Sub chkAffecte_AfterUpdate() If Me.chkAffecte = True Then Me.Filter = "affecte = True" Me.FilterOn = True Else Me.Filter = "affecte = False" Me.FilterOn = True End If End Sub Private Sub Form_Load() Me.chkAffecte = True Call chkAffecte_AfterUpdate End Sub
Si tu veux créer un code SQL dynamique alors voilà un exemple
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private Sub chkAffecte_AfterUpdate() Dim sSQL as string sSQL = "SELECT * FROM taTable WHERE affecte = " If Me.chkAffecte = True Then sSQL = sSQL & " True" Else sSQL = sSQL & " False" End If Me.RecordSource = sSQL Me.requery End Sub
Bon code
In vino veritas in aqua sanitas :pingoin2:
Pour avoir un champ avec des cases à cocher, il faut créer un champ de type "Oui/non" dans ta table. Access applique automatiquement le système de case à cocher à ce type de champ.
Une fois ce champ dans ta table, tu me mets dans ta requête et tu peux appliquer la formule décrite plus haut.
En espérant que se soit bien le sens de ta question.