Bonjour à tous.
Je suis un débutant en asp donc je vous prie d'excuser mon ignorance.
J'ai lié une basse access qui contient 27 enregistrement et mon but était de faire des pages de 10 (ces juste un test pour l'instant)
De plus j'ai le choix d'un critère de filtrage via une liste déroulante (num, division ou type article) et un champ text (ou on renseigne la valeur pour le filtrage).
Mon problème est le suivant.
Lorsque j'exécute mon formulaire avec un critère de filtrage, qui me retourne admettont 12 valeur, ben je vois les 10 premières sur ma première page (donc tout juste) mais lorsque je clique sur mes lien suivant, la requête semble complètement ré-exécutée sans critère (donc tout les valeurs se retrouve dans mon recordset) et en plus elle ne sont pas affichés.
Une bonne âme pourraît-elle jetter un coup d'oeil à mon code et me dire ou est-ce que je fait faux?
d'avance merci bcp.
----------------------------------------------------
<%@ LANGUAGE="VBSCRIPT" %>
<!--#include virtual="/asp/exemple/adovbs.inc"-->
<html>
<body>
<%
'Lecture de la base de donnée
'définition du chemin et du nom de la base de données
vPath = Server.MapPath("/") & "/asp/"
vFilename = "articles.mdb"
'Test si la base de donnée existe ou pas
Dim FSO
Set FSO = server.CreateObject("Scripting.fileSystemObject")
IF FSO.FileExists(vPath & vFilename) then
'Ouverture de la connexion à la base de données
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & vPath & vFilename
Conn.Open
'Recordset contenant le résultat de la requête
set oObject = server.CreateObject("ADODB.Recordset")
'Paramètre pour liens HTML
dim strParam
'Clause where
strWhere = ""
isValue = false
' Paramètre personnalisé "Param_01"
If len(request.form("Param_01"))>0 and len(request.form("Param_01_value"))>0 Then
If isValue Then
strWhere = strWhere & " AND "
Else
strWhere = strWhere & " WHERE "
End if
isValue = true
strTemp_01 = replace(Request.Form("Param_01_value"),"*","%")
strWhere = strWhere & " " & Request.Form("Param_01") & " LIKE '" & strTemp_01 & "%'"
strParam = strParam & "&Param_01=" & Request.Form("Param_01") & "&Param_01_value=" & Request.Form("Param_01_value")
End if
SQL = "Select * from article_sap" & strWhere
response.write(sql)
'PAGIN D'UN RECORDSET
Dim NbElementParPage
dim intPageCount
Dim intRecordCount
Dim Page
Dim ref
Dim intStart
Dim intFinish
'Initialisation du premier numéro de page
page = request.queryString("num")
' response.write("le numéro de la page est ")
' response.write(page)
'Ouverture du recordset
oObject.CursorLocation = 3 'adUseClient
oObject.Open sql, Conn, adOpenStatic, adLockReadOnly, adcmdText
'Définition du nombre d'élément par page
NbElementParPage = 10
oObject.PageSize = NbElementParPage
'oObject.CacheSize = oObject.PageSize
oObject.CacheSize = 40
intPageCount = oObject.pageCount
intRecordCount = oObject.recordCount
If CInt(page) > CInt(IntPageCount) Then
page = IntPageCount
End if
If CInt(page) <= 0 Then
page = 1
End if 'ce pavé permet de définir quelle record doit être lu pour la page à affiché
If IntRecordCount > 0 Then
oObject.absolutepage = page
intStart = oObject.AbsolutePosition
If CInt(page) = cInt(intpageCount) Then
intFinish = intRecordCount
else
intFinish = intStart + (oObject.PageSize - 1)
End if
End if
%>
<% 'Génération du paging %>
<%
dim valeur1
If request.queryString("Param_01") <> "" Then
valeur1 = request.queryString("Param_01")
Else
valeur1 = request.form("Param_01")
End if
dim valeur2
If request.queryString("Param_01_value") <> "" Then
valeur2 = request.queryString("Param_01_value")
Else
valeur2 = request.form("Param_01_value")
End if
%>
<FORM name = "form1" method="post">
<select name="Param_01" size="1">
<option selected value="numero" <%=selectMenuWithConstant("numero",valeur1)%>>Numéro</option>
<option value="division" <%=selectMenuWithConstant("division",valeur1)%>>Divsion</option>
<option value="type" <%=selectMenuWithConstant("type",valeur1)%>>Type article</option>
</select>
<input name="Param_01_value" type="text" size="40" maxlength="30" value="<%=valeur2%>">
<input type="submit" id="soumission" value="Soumettre">
</form>
<br>
<br>
<table width="100%" cellspacing="2" cellpadding="0" border="0">
<tr>
<td valign="top" align="left">
<%=intRecordCount%> enregistrement(s)
<% If intRecordCount > 0 AND cInt(intPageCount) > 1 then %>
<% If cInt(page) > 1 Then %>
<a href="?num=<%=page-1%><%=strParam%>"><< Précédent</a>
<% End if %>
<%For i = 1 to cInt(intPageCount) %>
<% If i = Page Then %>
<b><%=i%> </b>
<% Else %>
<a href="?num=<%=i%><%=strParam%>"><%=i%></a>
<% End if %>
<% Next %>
<% If cInt(page) < cInt(intPageCount) Then %>
<a href="?num=<%=page+1%><%=strParam%>">Suivant >></a>
<% End if %>
<% End if %>
</td>
</tr>
</table>
<%
'On affiche les éléments trouvés
If not oObject.EOF Then
%>
<table width="100%" cellspacing="0" cellpadding="0" border="1" class="text">
<tr>
<td><b>Numéro</b></td>
<td><b>Division</b></td>
<td><b>Type article</b/><td>
</tr>
<%
vTest = (oObject.AbsolutePage = page)
cpt = 0
Do while vTest
cpt = cpt + 1
%>
<tr>
<% If (cpt mod 2) <> 0 Then %>
<td valign="top" align="left" bgcolor="#2199A8"><%=oObject("Numero")%></td>
<td valign="top" align="left" bgcolor="#2199A8"><%=oObject("Division")%></td>
<td valign="top" align="left" bgcolor="#2199A8"><%=oObject("Type")%></td>
<% else %>
<td valign="top" align="left"><%=oObject("Numero")%></td>
<td valign="top" align="left"><%=oObject("Division")%></td>
<td valign="top" align="left"><%=oObject("Type")%></td>
<% end if %>
</tr>
<% oObject.movenext
vTest = oObject.AbsolutePage = page
loop
%>
</table>
<% End if
oObject.close : Set oObject=nothing
conn.close : Set conn=nothing
else
response.write("Le fichier " & vPath & vFilename & " n'existe pas")
end if
set FSO = nothing
%>
<% 'Fonctions diverses
Function selectMenuWithConstant(value, selectedValue)
' Response.Write fieldname & "<br>"
' Response.Flush
If value=selectedValue Then
selectMenuWithConstant = "selected"
Else
selectMenuWithConstant=""
End If
End Function
%>
</body>
</html>
Partager