Requetes SQL ... ?

Résolu
Signaler
Messages postés
51
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
20 mai 2006
-
Messages postés
51
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
20 mai 2006
-
Voila, en gros je dois faire un programme capable de gerer une bibliothèque : Documents, lecteurs, prets ....

La je rencontre un soucis, c ke mes requetes SQL ou il n'y a qu'un select fonctionnent sans probleme.

Cependant, les requetes plus complexes ne fonctionnent pas et joré u besoin d'un pti coup de main a ce propos :


select Nom, Prenom, Adresse, CodePostal, Ville, Mail, Telephone from Lecteur WHERE Document.Titre = recherche;

sachant ke recherche est un champ entré ds une textbox .... En réalité je voudré faire un LIKE plus kun EGAL


select Nom, Prenom, Adresse, CodePostal, Ville, Mail, Telephone from Lecteur WHERE Document.Titre LIKE *recherche*

Quelqu'un c la corriger?

Ensuite il y a celle ci :


select Nom, Prenom, Adresse, CodePostal, Ville, Mail, Telephone, DatePret, DateRetour from Lecteur, Pret where Pret.NumDoc Document.numdoc and where Pret.retour false"



Sachant ke Pret.Retour est un binaire precisant si le livre a été rendu ou non ....

MERCI DAVANCE !! :p

++

X-TruSioN

10 réponses

Messages postés
51
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
20 mai 2006

Juste si quelqu'un rencontre le meme pb, voila d'ou vené le pb :


select Titre, Public, Support, Thème, Service, Auteur, MaisondEdition, RevuecontenantlArticle, Emplacement, Résumé from Document where (public = " & Chr(34) & cat_public & Chr(34) & "

Pour les guillemets, j'ai apparement été obligé de mettre le code ASCII (34 = ") et maitnenant ca marche ...

Merci a italia et darunia
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
2
Ce qui serait bien c'est que tu nous dise quelles sont les erreurs renvoyées.

Pour la derniere requete l'erreur est que tu met 2 fois where



Il faut faire



select <champ1>, <champ2> from <table> where <champ1=val1> and <champ2=val2> ;



D@runia
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Oui il serait trés intérresant que tu nous donne la structure de tes tables ....
C'est à dire le Nom des Champs et leurs type..

et ce que tu veux en retirer..

It@li@
Messages postés
51
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
20 mai 2006

En ce ki concerne l'erreur, c'est :

Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll

et la ligne concernée n'est autre ke celle ki appelle la requette :


Adaprecherche.Fill(DtSetrecherche, "Document")

Ms l'erreur vient de l'ecriture de ma requette. En VB.net, c'est koi exactement la forme du where? Personne a un exemple par hazard, avec une condition du type : where <champ1> LIKE *<champ textbox rentré par l'utilisateur*>? En gros, ke la requete retourne toutes les lignes dont le titre contient le mot rentré par l'utilisateur ds la textbox .

Est-ce ke ca ne pourré pa venir des relations établies ds ma BDD ACCESS ? enfin je ne pense pa ms bon .... on c jamais

Et tant ke g kelkin sous la main, c tu commen imprimer facilement un datagrid en klikant sur un bouton? paske g choppé une source sur le site ki permet de le faire, ms je comprends pa la source de la classe impression, il la faite pour imprimer une image et tout et moi j'arrive pa a l'appliker a un datagrid, soit il imprime toute ma form, soit il imprime ... RIEN DU TOUT ! lol

MERCI DAVANCE ! Jcrois kapré, mon logiciel joré interet a le poster sur ce site pr remercier tout le monde car sans ce forum, je ne seré pa allé bien loin !

MERCI ALL !!!
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
2
Tu ne mets pas d'etoile * pour le like ?
Il faut faire Where <champ1> LIKE '%abc%'; (% designe une suite de caractere quelconque)

[mailto:D@runia D@runia]
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Pour moi ca marche avec des * * :

Code :
Filtre = "*abc*"
" SELECT * From TaTable WHERE TonChamp LIKE ' " & Filtre & " ' "

[mailto:It@li It@li]@
Messages postés
51
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
20 mai 2006

En gros voici mon code, paske ca marche toujours pa .... donc si vous pouviez y jeter un oeil ... merci les gars !
--------------------------------------------------------------------------------------------

Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click



Dim filtre
As
String


filtre = recherche.Text






'declaration du DataSet



Dim DtSetrecherche
As
New DataSet



'declaration du dataAdapter



Dim Adaprecherche
As
New OleDb.OleDbDataAdapter("select Titre, Date, Public, Support, Thème, Service, Auteur, MaisondEdition, DatedePublication, RevuecontenantlArticle, Emplacement, NombredExemplaires, Résumé from Document WHERE Document.Titre LIKE ' %" & filtre & "% ')", Connection)



'rempli le dataset


*******************************************
Adaprecherche.Fill(DtSetrecherche, "Document") * Ca plante sur cette ligne !!!
*******************************************



'remplissage de la liste avec le dataset



Dim Table_recherche
As DataTable


Table_recherche = DtSetrecherche.Tables("Document")


Grid_recherche.DataSource = Table_recherche



End
Sub
-------------------------------------------------------------------------------------------------------------------------------------

En faisant une execution pas a pas, il me met bien la valeur du textbox ds la variable Filtre, ms apré il plante avec toujours le meme rapport d'erreur ....

Et pour l'impression, vous n'avez pa d'idée par hazard? Juste pr imprimer un datagrid ?

Merci davance encore une fois !
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
2
Il nous faut plus d'info sur ton erreur, essaye ça (je sais pas si le code VB.net est nickel !) :

try
{
Adaprecherche.Fill(DtSetrecherche, "Document")
}
catch (OleDbException e)
{
string errorMessages = "";


For i=0 To i < e.Errors.Count
errorMessages += "Index #" + i + vbNewLine +
"Message: " + e.Errors[i].Message + vbNewLine +
"NativeError: " + e.Errors[i].NativeError + vbNewLine +
"Source: " + e.Errors[i].Source + vbNewLine +
"SQLState: " + e.Errors[i].SQLState;
Next

MessageBox.Show errorMessages

[mailto:D@runia D@runia]
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Pour imprimer un DataGrid j'ai posté un Source pour imprimer une ListView mais tu peux facilement le modifier pour tes besoins

Sinon pour ton souci essayes la DAO au lieu de l' ADO

It@li@
Messages postés
51
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
20 mai 2006

Ptit souci ITALIA, ta source pr l'impression a été faite en VB6, je bosse sur VB.net ...

Sinon pr la DAO, je v regarder ca merci du conseil !