bonjour =)
je viens rendre visite à des personnes plus expérimentées en ASP que je le suis.
j'ai un petit souci dans l'execution d'un filtre d'information en asp, d'une recherche donc.
j'ai effectué une liste déroulante renvoyant des trigrammes(liés à des noms de personnes).par la selection d'un trigramme, j'aimerais que ce fichier agisse sur une liste, et rende les informations selon le trigramme.
pour être clair, à un trigramme est attribué un materiel,celui-ci étant identifié par un code
fichier recherche1.asp
Code :
- <!--#INCLUDE FILE="fct_connexion.inc"-->
- <html>
- <form action="liste1.asp" method="GET" target="cadre1">
- <table border="0" width="100%" cellspacing="3" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0">
- <tr>
- <td><div align="right"><p>Collaborateurs : </td>
- <td>
- <select name="trigramme" size="1" tabindex="1">
- <option initial value="Trigrammes">Tous</option>
- <%
- 'connexion à la base de données par l'intermédiaire de la fonction Connexion() du fichier fct_connexion.inc
- Connexion
- 'création du Recordset
- SQLQuery = "SELECT * FROM collaborateur "
- SQLQuery = SQLQuery & " order by trigramme "
- Set RS = OBJdbConnection.Execute(SQLQuery)
- 'Remplissage de la liste
- If Not estVide(RS) Then
- Do Until RS.Eof
- response.write("<option value='" & Replace(RS("trigramme" ),"'","&" ) & "'>" ) 'Replace(RS("trigramme" ),"'","''" )
- response.write(RS("trigramme" ))
- response.write("</option>" )
- RS.MoveNext
- Loop
- End If
- 'Fermeture du Recordset par l'intermédiaire de la fonction Fermeture(...) du fichier fct_connexion.inc
- Fermeture RS
- %>
- </select>
- </td>
- </tr>
- <tr>
- <td></td>
- <td><input type="submit" value="Valider" name="B1" tabindex="3"><input type="reset"
- value="Effacer" name="B2" tabindex="4"></td>
- </tr>
- </table>
- </form>
- </td>
- </table>
- </center></div>
- </body>
- </html>
|
fichier liste1.asp
Code :
- <%
- trigramme = Replace(Request.QueryString("trigramme" ),"&","''" )
- %>
- <%
- 'connexion à la base de données par l'intermédiaire de la fonction Connexion() du fichier fct_connexion.inc
- Connexion
- 'création du Recordset
- SQLQuery = "SELECT * FROM ads.rfi,collaborateur,service,site "
- SQLQuery = SQLQuery & " where fk_id_pers=id_pers AND fk_id_serv=id_serv AND fk_id_site=id_site"
- if trigramme <> "Trigrammes" and trigramme<>"" then
- SQLQuery = SQLQuery & "where trigramme like '" & trigramme & "'"
- end if
- SQLQuery = SQLQuery & " ORDER BY trigramme"
- Set RS = OBJdbConnection.Execute(SQLQuery)
- %>
- <body background="../images/white.gif" bgcolor="#FFFFFF" topmargin="5"
- leftmargin="10">
- <table COLSPAN="8" BORDER="0" width="99%" cellpadding="3" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
- <tr>
- <th colspan="4" align="left"><img src="../images/rfi.gif"></th>
- </tr>
- <tr>
- <td align="center" width="8%" bgcolor="#008080"><font color="#FFFF00">trigramme</font></td>
- <td align="center" width="20%" bgcolor="#008080"><font color="#FFFF00">Code</font></td>
- <td align="center" width="20%" bgcolor="#008080"><font color="#FFFF00">Nom</font></td>
- <td align="center" width="20%" bgcolor="#008080"><font color="#FFFF00">Prenom</font></td>
- <td align="center" width="20%" bgcolor="#008080"><font color="#FFFF00">Service</font></td>
- <td align="center" width="20%" bgcolor="#008080"><font color="#FFFF00">Site</font></td>
-
-
- </tr>
- <tr>
- <% Do While Not RS.EOF %>
- <td align="center" width="8%" bgcolor="#FFFFC0" valign="top"><font color="#000080"><font color="#000080"><a HREF="detail1.asp?annonce=<%=RS("id_pers" )%>" target="cadre2"><%=UCase(RS("trigramme" ))%></a></font></td>
- <td align="left" width="52%" bgcolor="#FFFFC0" valign="top"><font color="#000080"><%= UCase(RS("code" ))%> </font></td>
- <td align="left" width="52%" bgcolor="#FFFFC0" valign="top"><font color="#000080"><%= UCase(RS("nom" ))
- %></font></td>
|
je met pas tout, ca devien vite lourd
mais je pense que l'essentiel est la
lorsque je selection un trigramme dans la liste déroulante, j'ai l'erreur suivante :
Microsoft OLE DB Provider for SQL Server erreur '80040e14'
Ligne 1 : syntaxe incorrecte vers 'trigramme'.
/Solution/stages/etds/liste1.asp, ligne 26
ligne 26 = Set RS = OBJdbConnection.Execute(SQLQuery)
Cependant si j'enlève les clefs étrangères dans le fichier liste1.asp et que je travaille seulement sur la table collaborateur ( avec les champs, id_pers,trigramme, nom, prenom,fk_id_service ) il me renvoit correctement le nom et prenom correspondant au trigramme.
Mais dès que je lui demande de me renvoyer les informations en relation avec les autres tables.. pouf ca marche plus ( c'est-à-dire, le matériel, identifiant du matériel et sa localité ( site et service))
Message édité par kewl4ever le 10-05-2006 à 11:34:47