Afficher dans Grid en fonction des critères coché [Résolu]

haamome 8 Messages postés lundi 31 août 2009Date d'inscription 1 novembre 2012 Dernière intervention - 23 févr. 2012 à 15:00 - Dernière réponse : haamome 8 Messages postés lundi 31 août 2009Date d'inscription 1 novembre 2012 Dernière intervention
- 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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
haamome 8 Messages postés lundi 31 août 2009Date d'inscription 1 novembre 2012 Dernière intervention - 24 févr. 2012 à 18:43
3
Merci
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

Merci haamome 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de haamome
haamome 8 Messages postés lundi 31 août 2009Date d'inscription 1 novembre 2012 Dernière intervention - 23 févr. 2012 à 22:15
0
Merci
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.
Commenter la réponse de haamome

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.