Requête SQL+Request.form et where???

Naomac Messages postés 3 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 15 janvier 2006 - 14 janv. 2006 à 18:42
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 15 janv. 2006 à 12:43
Bonjour, j'ai un problème avec ma requête SQl, je dois mettre 3 WHERE et cela ne marche pas! Je ne trouve pas mon erreur!
peut-être que vous la voyez!

voici mon code:
<% 'connection à la base de donnée
Dim rs_resultats
Dim rs_resultats_numRows

Set rs_resultats = Server.CreateObject("ADODB.Recordset")
rs_resultats.ActiveConnection = MM_Conn_persatatv_STRING
'SQL: jointures tables tb_Emission, tb_Diffusion et tb_Chaines
rs_resultats.Source = "SELECT * FROM (tb_Emission INNER JOIN tb_Diffusion ON tb_Emission.id_emission=tb_Diffusion.id_emission) INNER JOIN tb_Chaines ON tb_Chaines.id_chaine=tb_Diffusion.id_chaine WHERE tb_Diffusion.date='"& Request.Form("dateprog") & " ' AND WHERE tb_Diffusion.moment='"& Request.Form("momentjour") & "' AND WHERE tb_Chaines.nom='"& Request.Form("chaineprog") & "' "
rs_resultats.CursorType = 0
rs_resultats.CursorLocation = 2
rs_resultats.LockType = 1
rs_resultats.Open()

rs_resultats_numRows = 0
%>


but de ce code: il récupère d'un formulaire la date, le moment de diffusion et la chaines (sur le formulaire c par des menu/liste)
il recherche ces données dans la base de donnée

4 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
14 janv. 2006 à 19:57
Salut,
Enlève d'abord tous les 'WHERE' qui se trouve après tes 'AND'. Ensuite, si ça ne marche pas tu reviens nous dire ce qui plante.
Une piste : dans une requête SQL simple, il ne peut y a voir QU'UNE clause 'WHERE' , à toi de la constituer à l'aide de 'AND' et 'OR'.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 janv. 2006 à 20:07
Salut
Je ne sais pas comment tu as écrit ton message, mais chez moi, toutes les lignes se retrouvent à la suite les unes des autres. Très difficile à lire.
Bref. Une erreur de syntaxe SQL avec les AND :
Ne mets que AND et pas AND WHERE

Le reste, je ne connais pas assez cette syntaxe qui semble être du .Net (c'est tellement moche )
Dans tes dernières lignes comme rs_resultats.CursorType = 0
Il doit exister des variables VB beaucoup plus parlantes que 0 (genre adUserDefined)

Tes Dim : Toujours préciser quel type de variable il s'agit :
Dim rs_resultats As ADODB.RecordSet

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Naomac Messages postés 3 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 15 janvier 2006
15 janv. 2006 à 10:56
Désolé pour l'affichage ms cela ne fctionne tjs pas!
explorer me dit que ma requête sql est mauvaise, il dit qu'il n'y a pas de fin d'instruction!!!

j'ai retirer les where et j'ai simplifié le code asp! (c le code qu'on apprend à l'école donc obligé)

<%
sql = "SELECT * FROM (tb_Emission INNER JOIN tb_Diffusion ON tb_Emission.id_emission=tb_Diffusion.id_emission) INNER JOIN tb_Chaines ON tb_Chaines.id_chaine=tb_Diffusion.id_chaine
WHERE tb_Diffusion.date LIKE '%"& Request.Form("dateprog") & "%'
AND tb_Diffusion.moment LIKE '%"& Request.Form("momentjour") & "%'
AND tb_Chaines.nom LIKE '%"& Request.Form("chaineprog") & "%'
AND tb_Emission.nom_prog LIKE '%"& Request.Form("mot") & "%' "
Set rs = Server.CreateObject("ADODB.Recordset")'connection à la base de donnée
rs.Open,sql,Conn,3,3
%>

merci
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
15 janv. 2006 à 12:43
Au passage, si tu codes en ASP, il y www.aspfr.com.
Mais, ASP ou VB la méthode d'attaque des bases par ADO est la même et je vois que tu as codé :
rs.Open,sql,Conn,3,3
il y a une virgule de trop :
rs.Open sql, Conn, 3, 3

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
Rejoignez-nous