Problème avec une requete SQLeu :)

Ce forum est destiné à accueillir vos posts concernant la sécurité relative aux logiciels microsoft. Ils peuvent aussi bien traiter des systèmes d'exploitation Windows (NT,WIN2K,WINXP), du serveur web IIS, de Microsoft SQL et ainsi de suite...

Modérateur: modos Ixus

Problème avec une requete SQLeu :)

Messagepar elendil_de_sade » 27 Mai 2004 12:22

Bonjour bonjour !
Voila, j'ai une requete à creer assez, compliqué pour moi....
Il s'agit d'une application a créer pour un college. Pour cette requete, il n'y a pourtant besoin que d'une seule table, la table ELEVE : Qui contient:
NoEleve, NomEleve, PrenomEleve, ClasseEleve
J'ai créer une interface graphique, avec une requete :
SELECT DISTINCT ELEVE.NomEleve FROM ELEVE;

Afin de stocker dans une liste déroulante les différentes classes existantes sans doublons.

Et je dois créer une seconde liste déroulante dessous, mais qui selectionne les NomEleve parmila classe de la liste ci dessus...
J'ai essayé un truc du genre :
SELECT ELEVE.NomEleve FROM ELEVE WHERE ELEVE.NomEleve = R1
ça ne marche pas... (R1 étant bien sur ma première requete)
Je sais que ce ne doit pas etre sorcier... mais fo juste savoir comment faire, meuuurci
Barton 3000+ , A7N8X Deluxe
Radeon 9600 Pro , 2*512 Mo PC3200
Seagate Barracuda 80 Go ,
Brûleur de carte mère le dimanche :D
elendil_de_sade
Second Maître
Second Maître
 
Messages: 26
Inscrit le: 13 Mai 2004 23:15

Hum c'est pas tout à fait le thème du forummais bon...

Messagepar nemesis » 27 Mai 2004 12:56

Hello

Bon alors deux choses qui me sembles bizares....

Tu fais : SELECT DISTINCT ELEVE.NomEleve FROM ELEVE; et ce pour récupéré les classes??? Alors déjà ça doit pas tout à fait marcher en effet si tu veux la liste des clases il vaut mieux faire :

SELECT DISTINCT ELEVE.ClasseEleve from ELEVE;

ensuite tu remplis ta combobox (liste droulante) avec ClasseELeve ...

Une fois selectionné ta classe tu initialise ta deuxième liste avec :

SELECT ELEVE.NomEleve from ELEVE where ELEVE.ClasseEleve = "l'élément selectionné" (ça depend énormément du langage utilisé par ex en java : comboboxClases.getSelectedItem().toString() est pas mal.... )

Maintenant si tu veux récupéré des données à partir d'une liste créée avec une premiere requête il faut faire :

Select toto from tata where toto_id IN (select toto_id from tatataches where tatataches.tachesdate >= 01/01/2004) ainsi que tu ais un ou plusieurs résultats ta requête fonctionnera.

Mainteant ce genre de question relevant du développement 'pur et dur' elle serait plus apropriée sur un site du type de http://www.developpez.com

Cdt
Nem.
ce n'est pas parce qu'il n'y a pas de preuve qu'une chose existe qu'elle ne peut pas exister
Avatar de l’utilisateur
nemesis
Amiral
Amiral
 
Messages: 1954
Inscrit le: 01 Jan 2003 01:00
Localisation: 75

Messagepar elendil_de_sade » 27 Mai 2004 13:51

En fait oui, me susi trompé mais c'est juste qd je l'ai ecrit ici, c'est bien pour les classes :
SELECT DISTINCT ELEVE.ClasseEleve FROM ELEVE;

Maintenant :
SELECT ELEVE.NomEleve from ELEVE where ELEVE.ClasseEleve = "l'élément selectionné"
A la place "d'element selectionné" j'ai tout essayé... le nom de la liste déroulante, le nom de la requete, j'ai meme recrit la requete entre ( )...

Je poste aussi sur www.developpez.com, et sur www.ixus.net, va voir si tu veux ;)
Barton 3000+ , A7N8X Deluxe
Radeon 9600 Pro , 2*512 Mo PC3200
Seagate Barracuda 80 Go ,
Brûleur de carte mère le dimanche :D
elendil_de_sade
Second Maître
Second Maître
 
Messages: 26
Inscrit le: 13 Mai 2004 23:15

Messagepar yannva » 27 Mai 2004 14:02

Salut,
Je suppose que tu bosses avec Access et moi je ne connais que sql par contre l'opterai pour

SELECT ELEVE.NomEleve from ELEVE where ELEVE.ClasseEleve IN "premiereRequete"

Espérant t'avoir aider

A +

Yann
Image
Si tous ceux qui croient avoir raison n'avaient pas tort, la vérité ne serait pas loin. [Pierre Dac]
Avatar de l’utilisateur
yannva
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 340
Inscrit le: 31 Août 2002 00:00
Localisation: Nancy

Messagepar elendil_de_sade » 27 Mai 2004 14:43

Merci bcp l'ami, mais j'ai deja essayé, avec et sans parentheses, avec et sans guillements, crochets... tout...

Mon dernier c'est :
SELECT ELEVE.NomEleve
FROM ELEVE
WHERE ELEVE.ClasseEleve IN (ClasseEleveListe)
ORDER BY ELEVE.NomEleve;


ClasseEleveListe est le nom de ma listbox

ça me donne ça :
Image

Je ne sais plus quoi faire
Barton 3000+ , A7N8X Deluxe
Radeon 9600 Pro , 2*512 Mo PC3200
Seagate Barracuda 80 Go ,
Brûleur de carte mère le dimanche :D
elendil_de_sade
Second Maître
Second Maître
 
Messages: 26
Inscrit le: 13 Mai 2004 23:15

Messagepar yannva » 27 Mai 2004 15:24

Ce ne serait pas sur le code de selection de ta liste "classeEleveListe" qu'il faudrait remplir la combo "Eleve" par hasard ?

Et puis mets ton windows à jour : on voit l'icone indiquant des mises à jours dispo en bas à droite :wink:

Yann
Image
Si tous ceux qui croient avoir raison n'avaient pas tort, la vérité ne serait pas loin. [Pierre Dac]
Avatar de l’utilisateur
yannva
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 340
Inscrit le: 31 Août 2002 00:00
Localisation: Nancy

Messagepar elendil_de_sade » 27 Mai 2004 15:43

Je ne suis pas sur d'avoir bien tout compris Yannva :D :D :D :D :D :D :D :D :D :D :D :D
Barton 3000+ , A7N8X Deluxe
Radeon 9600 Pro , 2*512 Mo PC3200
Seagate Barracuda 80 Go ,
Brûleur de carte mère le dimanche :D
elendil_de_sade
Second Maître
Second Maître
 
Messages: 26
Inscrit le: 13 Mai 2004 23:15

Messagepar loberty » 28 Mai 2004 20:34

Bonjour,

Cela ne peux pas fonctionner comme cela.
Si j'ai bien compris dans ta second requête SQL (recherche des elèves de la classe sélectionnée sur le 1er combo), tu recherche directement avec le nom de la recherche, le recordset.
Ce qu'il faut c'est mettre la valeur recherchée et non l'objet contenant la valeur.

Soit COMBO1 le combo avec les classes.
Soit COMBO2 le combo avec les élèves.
Sur sélection d'une classe, tu dois exécuter la requête et remplir le COMBO2.
C'est quelque chose du genre :
"SELECT ELEVE.NomEleve
from ELEVE
where ELEVE.ClasseEleve = '" & Combo1.List(Combo1.ListIndex) & "'".

Si tu sélectione dans COMBO1 la classe "Classe103" ta requête donnera :
SELECT ELEVE.NomEleve from ELEVE where ELEVE.ClasseEleve = 'Classe103'

Fais attention :
Point 1
=> where ELEVE.ClasseEleve = '"
=> juste avant les guillemets il y a une côte
Point 2
=> & "'"
=> entre les guillemets il y a une cote
Avatar de l’utilisateur
loberty
Contre-Amiral
Contre-Amiral
 
Messages: 411
Inscrit le: 25 Mai 2004 13:47
Localisation: Val de marne

Messagepar nemesis » 29 Mai 2004 10:56

arf les simple quotes.... :roll:

j'les avais oubliés :oops:

En effet dès que la valeur du champ est alpha numerique (et j'avais zappé que le nom d'une classe c'est alpha num...) il faut coller des ' avant et après sinon t'as droit à une belle erreur type syntax error near...


[à partir d'ici blague quoi que...]
Bon b'un autre côté faire une appli bdd avec acces :roll:
[/à partir d'ici blague quoi que...]

bon courage et bonne continuation.

Cdt.

Nem.
ce n'est pas parce qu'il n'y a pas de preuve qu'une chose existe qu'elle ne peut pas exister
Avatar de l’utilisateur
nemesis
Amiral
Amiral
 
Messages: 1954
Inscrit le: 01 Jan 2003 01:00
Localisation: 75

Messagepar loberty » 30 Mai 2004 15:29

Nemesis,

Concernant ta blague qui est à 2 sens je ne suis pas d'accord qui est à 2 sens.
Access peux très bien être utilisé pour de la gestion de BDD, même à titre professionnel.
Dans la société où je travaille, nous avons plusieurs produits que nous commercialisons qui fonctionnent sur BDD : Access, SQL-SERVER et MYSQL.
Nous n'avons pas de problèmes particuliers.
Sache qu'Access est très bien, mais il faut ne pas oublier :
. il n'y a pas de serveur de BDD, c'est juste une base partagée
. au delà de 3 connexions clients les performances sont nulles
. au delà d'une base de 300 000 enregistrements, il faut mieux tout gérer sur papier !
Sinon, il reste des serveurs de BDD comme SQL-SERVER ou MYSQL.
L'avantage de SQL-SERVER est de comprendre des extensions très puissantes.
MYSQL est gratuit, fiable et robuste tout comme SQL-SERVER.
Pour informations, chez nombreux de mes clients : URSSAF, CAF, CPAM, ... etc ... les bases de données MYSQL sont fortement utilisées pour des bases de plusieurs centaines de milliers d'enregistrement, certaines dépassent les million.
Avec Access faut pas espérer cela, mais cela reste le meilleur choix pour le développement d'un petite gestion de base de données, en plus si gratuit si on se passe de l'application Access elle-même et que l'on fait un dév type VB en utilisant le moteur jet.

A+
Avatar de l’utilisateur
loberty
Contre-Amiral
Contre-Amiral
 
Messages: 411
Inscrit le: 25 Mai 2004 13:47
Localisation: Val de marne

Messagepar Franck78 » 30 Mai 2004 16:09

Bonjour Nem,

Assez d'accord avec loberty ! Faut prendre Access pour ce qu'il est: un bon intégré comme l'étaient dbase, foxpro, quattro,... en leurs temps.
Mais monoposte :!: C'est dur pour un SGBDR, on est tous d'accord la dessus!

Bye
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

OUlàààà

Messagepar nemesis » 31 Mai 2004 12:38

Arf je pensais pas être froissant avec ma petite blague ... :roll:

Bon je m'explique : en fait access pour faire une interface vers un 'vrai' SGBD (je parlerai de R apres...) je suis ok pour dire que c'est un outil correcte et très pratique. Donc interfacé avec MSQL (je bosse avec un en ce moment j'ai quelques grief contre mais bon) ou MySQL voir Oracle, je dis rien je pense que c'est pas mal et assez puissant au niveau conception design de l'appli heu par contre des million d'enregistrements sur un Mysql j'espère que les contrôles d'intégrité au niveau de l'applicatif sont ok (je supose que oui) sinon bjour les soucis le jour ou un truc se passe mal (in murphy i trust :D ).

Par contre utilisé seul et présenté comme un SGBDR (la majorité des élèves de lycée et ou de fac qui ont une introduction au sgbdr le font sur accès ..) je dis NON!!!! C'est leur donner une fausse idée de ce qu'est un SGBDR et en plus ça les habitue trop au clic ... résultat le jour ou on les colles sur un projet ou les plate formes sont en Unix avec un oracle ou autre tournant dessus bha certains s'accrochent et avances (là pas de problèmes ) d'autres paniquent et baissent les bras (ça c domage).

Enfin pour terminer je suis d'accord que pour une petite appli ne necessitant pas de hautes performances (ceci est toujour relatif même si c'est destiné à deux pequins sur la terre il est inadmissible de fournir un produit non fiable et hyper lent enfin c'est mon avis et je parle pas d'access là c'est au sens général), access est pratique et ne necessite pas d'investissement particulier.

Voilà j'espère avoir été clair en fait le truc qui me fait bondir c'est quand on me présente access comme LE SGBDR et qu'un gars qui a utilisé deux fois access me dit qu'il connait les BDD (vu en entreitent) et n'en demort pas...

Valà valà et encore désolé si j'ai froissé quelqu'un...

Nem.
ce n'est pas parce qu'il n'y a pas de preuve qu'une chose existe qu'elle ne peut pas exister
Avatar de l’utilisateur
nemesis
Amiral
Amiral
 
Messages: 1954
Inscrit le: 01 Jan 2003 01:00
Localisation: 75

Re: OUlàààà

Messagepar Franck78 » 31 Mai 2004 13:08

nemesis a écrit:... qu'un gars qui a utilisé deux fois access me dit qu'il connait les BDD (vu en entreitent) et n'en demort pas...

Nem.


Tu lui demandes si access peut vérifier que son modèle est bien en huitième forme normale :lol: ...


bye
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar loberty » 31 Mai 2004 16:01

Hello,

Tu n'as froissé personne.
Je voulais juste donner mon point de vue sans vouloir lancer de polémique.

Désolé si je suis apparu comme étant le susceptible de service.
Ce n'est pas le cas ... je crois ?

A+ :-)
Avatar de l’utilisateur
loberty
Contre-Amiral
Contre-Amiral
 
Messages: 411
Inscrit le: 25 Mai 2004 13:47
Localisation: Val de marne


Retour vers Logiciels Microsoft

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron