Afficher dans Grid en fonction des critères coché

Résolu
haamome Messages postés 8 Date d'inscription lundi 31 août 2009 Statut Membre Dernière intervention 1 novembre 2012 - 23 févr. 2012 à 15:00
haamome Messages postés 8 Date d'inscription lundi 31 août 2009 Statut Membre Dernière intervention 1 novembre 2012 - 24 févr. 2012 à 18:43
Bonjour à toutes et à tous,

Voilà je vous expose mon souci qui selon moi et de taille, je vais tenter d'illustrer du mieux que je peux pour vous faciliter la compréhension. Suivez bien cela va surement vous faire mal au crâne :

Comme je l'ai dit dans un sujet précédent je développe une application (sous VB.Net pour une université) de gestion des inscriptions des élèves et des salariés. J'ai tout fait comme il fallait mais voilà que la dernière partie de mon application qui est d’afficher les informations selon les critères coché me pose un gros problème. Je m'explique :

Voici un screen de mon application pour afficher les informations




Comme vous pouvez le voir j'ai plein de petit CheckBox et un DataGridView. En fonction de ce que l'utilisateur checkera le DataGridView affichera ou pas les informations de l'étudiant. Sachant que le nom et prénom, quoi qu'il arrive, seront afficher dans le DataGridView lorsqu'on cliquera sur le bouton "Voir" (qui n'est pas visible sur l'image mais je vous promet qu'il y est dans mon programme ). Cela signifie que si aucune des CheckBox n'est coché et que l'utilisateur clique sur le bouton "Voir", le DataGridView affichera seulement le nom et le prénom de l'élève.


Voici partiellement ma BDD pour que vous puissiez comprendre comment les requêtes SQL pourrait être rédigé.




Un étudiant lorsqu'il s'inscrit dans l'établissement il peut avoir :

- Soit un statut d'étudiant.
- Soit un statut de salarié.
- Soit aucun statut.


Enfin je termine par mon code VB.Net pour vous montrer comment j'affiche le SELECT dans mon DataGridView :




Voila en gros mon problème, mes questions :

1- Comment faire pour que mes requêtes se rédige en fonction de ce que l'utilisateur cochera ?

Moi j'étais partie sur un truc comme ça, si ce critère est coché alors on l'ajoute dans le select, si ce critère est coché.... Exemple :

MyCommand.CommandText = "SELECT nom,prenom," &
if Civilité.Checked = True Then & "Civilité," & End If
if sexe.Checked = True Then & "sexe" & End If.......etc

Un peu barbare comme méthode vous en conviendrez mais j'ai trouver que ça pour l'instant.

2- Existe t-il d'autres méthodes (toujours sous VB.NET) pour faire ça ? Si oui lesquels ?



Si vous n'avez pas saisie mon problème demandez moi j’essaierai de vous en dire plus. En attendant je continue et essai de résoudre ça. Je vous remercie par avance au temps que vous me consacrerez. Salut

2 réponses

haamome Messages postés 8 Date d'inscription lundi 31 août 2009 Statut Membre Dernière intervention 1 novembre 2012
24 févr. 2012 à 18:43
Bonsoir à toutes et à tous alors voilà comment je m'y suis pris pour résoudre ce problème (toujours sous VB.Net)

Je crée un module qui contiendra tout les champs à ajouter dans mon SELECT en fonction bien sur de ce que l'utilisateur cochera. Mais un exemple et plus parlant que du blabla :

Dans mon Module

'Déclaration de(s) variable(s) en Public

Public var1 As String
Public var2 As String
.
.
.
etc...


'Procédure qui vérifiera les conditions (Si l'utilisateur coche ou pas les champs qu'il souhaite voir afficher dans son SELECT )

Public Sub VerificationDesConditions()

'Si la CheckBox1 est coché alors...
If NomduFormulaire.CheckBox1.Checked = True Then
'Le premier champs peut être saisie ainsi sans aucun signe particulier
var1 = "nom_du_champ1_de_votre_table"
Else
var1 = ""
End If

'Surtout ne pas oublier la "virugle" et "l'espace" avant de saisir le nom du champ
If NomduFormulaire.CheckBox2.Checked = True Then
var2 = ", nom_du_champ2_de_votre_table"
Else
var2 = ""
End If
.
.
.
etc...



****************************************
****************************************

Alors juste au dessus je vous ai demandé de surtout pas oublier la "virgule" est "l'espace" vous allez comprendre pourquoi si vous n'avez pas encore saisie.

Votre requête sera ainsi


MyCommand.CommandText = "SELECT " & var1 & var2 & " FROM nom_table..."

Si maintenant l'utilisateur a coché la CheckBox1 alors cela vous donnera ça :

MyCommand.CommandText = "SELECT nom_du_champ1_de_votre_table FROM nom_table"


Si par contre l'utilisateur coche les deux CheckBox (ou plus de deux) cela vous donnera ça :

MyCommand.CommandText = "SELECT nom_du_champ1_de_votre_table, nom_du_champ2_de_votre_table FROM nom_table"


Voilà j'espère que ça aidera les personnes qui auront à rencontrer cette difficulté. Si vous avez besoin de plus d'explication, d'aide etc... n'hésitez pas à me demander via ce post

Tcho
3
haamome Messages postés 8 Date d'inscription lundi 31 août 2009 Statut Membre Dernière intervention 1 novembre 2012
23 févr. 2012 à 22:15
Re salut voilà j'ai réussi à faire ce que je voulais je vous remercie quand même et vous souhaite une très bonne soirée ++


PS: pour ceux que cela intéresserait je fournirai les détails un peu plus tard.
0
Rejoignez-nous