Accueil > Forum > > > > REQUETES SQL A CHOIX MULTIPLES
REQUETES SQL A CHOIX MULTIPLES
samedi 10 novembre 2007 à 10:43:38 |
REQUETES SQL A CHOIX MULTIPLES

NICOLAS24112000
|
Bonjour à tous, je suis bloqué depuis pas mal de temps malgré de nombreuses recherches sur : comment "auto-écrire" des requêtes sql en fonction des choix de l'utilisateur. En fait, dans un formulaire, je souhaiterais que l'utilisateur puisse faire des extractions en fonction des champs(ou critères) qu'il choisit. Et en fonction des champs choisis, la requête sql s'auto-écrit pour ensuite remplir le datagridview en cliquant sur le bouton recherche. J'ai définit la requête de base : requete = "SELECT * FROM Affaire " ; ensuite si l'utilisateur choisit le champ "Nom" pour extraire les noms des clients et les afficher ds le datagridview en fonction du critère qu'il rentrera dans le textbox (nom), j'aimerais que la requête s'auto-écrit de la façon suivante : requete = "SELECT * FROM Affaire WHERE AND Nom like" & "'" & nom & "'".
Merci pour votre aide, j'espère que j'ai été clair; sinon j'expliquerais plus en détails.
Nico
|
|
samedi 10 novembre 2007 à 12:10:39 |
Re : REQUETES SQL A CHOIX MULTIPLES

Exploreur
|
Salut,
Moi je ferais comme cela(à essayer) :
Option Explicit
Dim MyTypeSql1 As String Dim MyTypeSql2 As String Dim MyTypeSql3 As String Dim Msg As String Dim Requete As String
Private Sub Valider_Click()
If StrConv(Text1.Text, vbProperCase) = "Nom" Then Requete = MyTypeSql1 ElseIf StrConv(Text1.Text, vbProperCase) = "Prenom" Or StrConv(Text1.Text, vbProperCase) = "Prénom" Then Requete = MyTypeSql2 ElseIf StrConv(Text1.Text, vbProperCase) = "Age" Then Requete = MyTypeSql3 Else Msg = "Choix incorrect ! " & vbCrLf & _ "Choix possible : " & vbCrLf & _ " - Nom " & vbCrLf & _ " - Prenom " & vbCrLf & _ " - Age " & vbCrLf & vbCrLf
MsgBox Msg Text1.Text = vbNullString Text1.SetFocus Exit Sub End If
End Sub
Private Sub Form_Load()
MyTypeSql1 = "SELECT * FROM Affaire WHERE AND Nom like" & "'" & Text1.Text & "'" MyTypeSql2 = "SELECT * FROM Affaire WHERE AND Prenom like" & "'" & Text1.Text & "'" MyTypeSql3 = "SELECT * FROM Affaire WHERE AND Age like" & "'" & Text1.Text & "'"
End Sub
A+ Exploreur
Linux a un noyau, Windows un pépin 
|
|
samedi 10 novembre 2007 à 13:18:07 |
Re : REQUETES SQL A CHOIX MULTIPLES

NICOLAS24112000
|
Merci pour ta réponse rapide, mais en fait j'ai du mal m'expliquer. Les critères de choix pour filtrer la base de données sont écris par l'utilisateur dans un des champs du datagridview1 suivant :
Me.DataGridView2.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Nom, Me.Prenom, Me.Ville})
Me
.DataGridView2.Rows.Add() 'j'ajoute une ligne pour pouvoir saisir les critères de choix
Ensuite l'utilisateur rempli, soit le champ nom, prenom et/ou ville. Il clique sur bouton "Recherche" et dessous un datagridview2 se remplit suivant la requête. Pour savoir quels champs ont été rempli je fais :
PrivateSub Recherche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Recherche.Click Dim requete, table AsString Dim nom, prenom, ville As String 'attribution des variables string en fonction de champs du datagridview1 nom = Me.DataGridView1.Item("Nom", 0).Value prenom = Me.DataGridView1.Item("Prenom", 0).Value ville = Me.DataGridView1.Item("Ville", 0).Value'si aucun champ n'est rempli, on affiche toutes les données de la base dans datagridview2 If nom IsNothingAnd prenom IsNothingAnd ville IsNothing Then requete = "SELECT * FROM Affaire" table = "Affaire" se_connecter(requete, table)Else If nom IsNotNothingThen If prenom IsNotNothingThen requete = "SELECT * FROM Affaire WHERE Nom like" & "'" & nom & "' AND ""WHERE Prenom like" & "'" & prenom & "'" EndIf requete = "SELECT * FROM Affaire WHERE Nom like" & "'" & nom & "'" EndIfIf prenom IsNotNothingThen If nom IsNotNothingThen requete = "SELECT * FROM Affaire WHERE Nom like" & "'" & nom & "' AND ""WHERE Prenom like" & "'" & prenom & "'" EndIf requete = "SELECT * FROM Affaire WHERE Prenom like" & "'" & prenom & "'" EndIf table = "Affaire" se_connecter(requete.ToString, table) EndIf End Sub PrivateSub se_connecter(ByVal requete AsString, ByVal table AsString) Dimbase, cheminAsString 'Chemin d'accès à la b.d. située dans le dossier bin 'chemin = Application.StartupPath & "\proprietaires.mdb" chemin ="K:\CltAccess.mdb" base ="provider=microsoft.jet.oledb.4.0;data source=" + chemin DimconnexionAsOleDbConnection = NewOleDbConnection(base) connexion.Open() 'Lien entre la base et la requête DimLiaisonAsNew OleDbDataAdapter(requete, base) DimMemoireAsNew DataSet() 'Charge la table en mémoire Liaison.Fill(Memoire, table) DimVue AsNewDataView(Memoire.Tables(table)) DataGridView2.DataSource = Vue connexion.Close() EndSub Il s'agit juste d'un exemple pour 2 champs, mais le pb c'est que j'en ai au moins 25. Donc les possibilités sont énormes. Y-a-t-il un moyen pour faire + simple et prendre en compte les champs null ? Merci Nico
|
|
samedi 10 novembre 2007 à 16:09:44 |
Re : REQUETES SQL A CHOIX MULTIPLES

NICOLAS24112000
|
Bon ben je m'en sors pas, voilà un aperçu pour essayer d'avoir toutes les possibilités (j'aimerais trouver comment faire pour automatiser les requêtes) : (j'ai remplacé le nom des champs par les numéro 1,2,3,4..... pour mettre dans le forum) ' tous les champs vides If 1 = NothingAnd 2 = NothingAnd 3 = NothingAnd 4 = NothingAnd 5 = NothingAnd _ 6 = NothingAnd 7 = NothingAnd 8 = NothingAnd 9 = NothingAnd 10 IsNothingAnd _ 11 IsNothingAnd 12 IsNothingAnd 13 IsNothingAnd 14 IsNothingAnd 15 IsNothingAnd _ 16 IsNothingAnd 17 IsNothingAnd 18 IsNothingAnd 19 IsNothingAnd 20 IsNothingAnd _ 21 IsNothingAnd 22 IsNothingAnd 23 IsNothingAnd 24 IsNothingAnd 25 IsNothingThen requete = "SELECT * FROM Client" table = "Client" se_connecter(requete, table) EndIf ' champ 1 rempli et les autres vides IfNot 1.ToString = NothingThen If 2 = NothingAnd 3 = NothingAnd 4 = NothingAnd 5 = NothingAnd _ 6 = NothingAnd 7 = NothingAnd 8 = NothingAnd 9 = NothingAnd 10 IsNothingAnd _ 11 IsNothingAnd 12 IsNothingAnd 13 IsNothingAnd 14 IsNothingAnd 15 IsNothingAnd _ 16 IsNothingAnd 17 IsNothingAnd 18 IsNothingAnd 19 IsNothingAnd 20 IsNothingAnd _ 21 IsNothingAnd 22 IsNothingAnd 23 IsNothingAnd 24 IsNothingAnd 25 IsNothingThen requete = "SELECT * FROM Client WHERE 1 IN (" & 1 & ") " EndIf EndIf ' champ 2 rempli et les autres vides IfNot 2.ToString = NothingThen If 1 = NothingAnd 3 = NothingAnd 4 = NothingAnd 5 = NothingAnd _ 6 = NothingAnd 7 = NothingAnd 8 = NothingAnd 9 = NothingAnd 10 IsNothingAnd _ 11 IsNothingAnd 12 IsNothingAnd 13 IsNothingAnd 14 IsNothingAnd 15 IsNothingAnd _ 16 IsNothingAnd 17 IsNothingAnd 18 IsNothingAnd 19 IsNothingAnd 20 IsNothingAnd _ 21 IsNothingAnd 22 IsNothingAnd 23 IsNothingAnd 24 IsNothingAnd 25 IsNothingThen requete = "SELECT * FROM Client WHERE 2 IN (" & 2 & ") " EndIf EndIf
table ="Client" se_connecter(requete, table)Vous voyez, c'est indigeste et vraiment pas pro !! Au secours !!!!
|
|
dimanche 11 novembre 2007 à 17:13:30 |
Re : REQUETES SQL A CHOIX MULTIPLES

NICOLAS24112000
|
Toujours pas d'infos complémentaires ? Je pense qu'il me faudrait en fait une "requête dynamique" dont le sql texte s'auto rempli en fonction des "champs critères" qui sont différents de Nothing. J'ai vraiment besoin d'aide....  Merci
|
|
Cette discussion est classée dans : fonction, sql, utilisateur, choix, auto
Répondre à ce message
Sujets en rapport avec ce message
VB6 SQL Server [ par CHAHID ]
Salut tout le mondeJ ai ecrit une fonction FC1 en vb et je veux l'introduire dans une requete sql par exemple :select champ1,chmp2,FC1(chmp3) from Nom
Fonction! [ par couriousous ]
ben c assez simple et en même temp compliqueé je voudrait savoir comment décoder une fonction que tappe un utilisateur dans une zone de text afin de
Comment faire pour afficher une image en fonction du choix dans une listbox ? [ par Flit ]
Voilà j'ai une Listbox (qui contient un TXT) et je voudrais que quand on clique sur un des differents "choix" de ce Listbox une image differente s'aff
Afficher une form selon choix utilisateur [ par azf ]
Bonjour.Comment résoudre le probleme suivent :je dispose d'un certain nombre de forms : formxx, formsyy, form aa, formvv................Ce que je souh
Liste de choix [ par filou ]
Salut le forum,Je veux faire une petite liste de selection non modifiable par l'utilisateur (saisie d'informations) J'ai essayé avec une combobox ! Av
Question sur la Protection, Sécutité d'ACCESS. [ par Nitocris ]
En faite je cherches une fonction qui me renverrai le group d'utilisateur auquel appartient mon userJe sais que la fonction Application.CurrentUserRen
fonction sql [ par zak ]
svp,je voudrais l equivalent de la fonction MID en db2merci
Récursivité... Classe auto-référenciable [ par MarcoBrunelle ]
Je devais simuler un arbre à l'aide de Type personnalisé, il s'avère qu'en VB, un type de ne pas avoir comme propriété, un objet de ce même type.Ex.:'
sql fonction?? [ par bossun ]
salut existe-t-il une fonction SQL qui me permette de séléctionner tout lesregistrements différents d'un champs.comme par ex la fonction count(distinc
SQL fonction count [ par bossun ]
salut,comment utilise-t-on la fonction count(distinct pour compter lesenretistrements différents d'un champs????J'ai une BD Access 2000j'ai essayérs.o
Livres en rapport
|
Derniers Blogs
DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|