Problème de variable empechant le fonctionnement du code
Bonjour,
J'ai un problème qui est assez compliqué à expliquer.
Dans une première page, j'ai un formulaire qui permet de choisir un horaire.
Ce formulaire envoie sur une seconde page ou là, en fonction de l'horaire choisi j'affiche différente chose.
Voici le code la seconde page :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
<form method="POST" action="checklist_journaliere.asp" id=form1 name=form1><%
hor=Request.Form("horaire")
'hor="11h00"
requete_checklist="SELECT control_domaine, control_name, control_procédure FROM ((tb_control t1 "
requete_checklist=requete_checklist & "INNER JOIN tb_control_planifie t2 ON t1.id_control=t2.id_control) "
requete_checklist=requete_checklist & "INNER JOIN tb_jour_semaine t3 ON t3.id_jour=t2.id_jour) "
requete_checklist=requete_checklist & "INNER JOIN tb_horaire t4 ON t4.id_horaire=t2.id_horaire "
requete_checklist=requete_checklist & "WHERE t3.jour='"&jour_now&"' AND t4.horaire='"&hor&"' "
requete_checklist=requete_checklist & "ORDER BY t1.control_domaine, t1.place_control"
checklist 'appel procédure
if Request.Form("choix_action")="Enregistrer" then
checklist
elseif Request.Form("choix_action")="Revenir" then
Response.Redirect("portail.asp")
end if
%>
</form>
<% |
(checklist est une procédure qui fonctionne car je l'ai utilisé avant pour d'autres pages)
Si je met hor="11h00" ça fonctionne sans problème.Mais à partir du moment ou je récupère le champ du formulaire je vais avoir un problème.
L'appel de la première procédure va fonctionner parfaitement.
Mais quand je vais entrer dans la condition "if" peut improte ce que je fais je vais avoir cette erreur que je n'ai pas si je définis hor="11h00"
Citation:
ADODB.Recordset erreur '800a0bcd'
BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel.
/meteo/checklist_journaliere.asp, ligne 106
La ligne 106 correspond à une ligne de la procédure "checklist"
pourtant ça fonctionne bien une fois, et quand c'est hor="11h00" ça fonctionne tout court.
voici ma procédure même si elle est un peu longue
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
sub checklist
set checkRS = CreateObject("ADODB.RecordSet")
checkRS.Open requete_checklist, connexion,1,1
dim tb_ctrl_name()
dim tb_ctrl_dom()
dim tb_ctrl_proc()
Response.Write "</br></br>"
j=0
do while not checkRS.EOF
redim preserve tb_ctrl_name(j)
redim preserve tb_ctrl_dom(j)
redim preserve tb_ctrl_proc(j)
tb_ctrl_dom(j)=checkRS("control_domaine")
tb_ctrl_name(j)=checkRS("control_name")
tb_ctrl_proc(j)=checkRS("control_procédure")
checkRS.MoveNext
j=j+1
loop
checkRS.MoveFirst
session("tb_dom")=tb_ctrl_dom
session("tb_name")=tb_ctrl_name
session("tb_proc")=tb_ctrl_proc
%>
<table class="checklist_matin" border="1">
<caption class="titre1">Checklist journalière du <%=DATE%></caption>
<tr>
<th>Domaines</th>
<th>Contrôles</th>
<th>Procédure</th>
<th>Resultat</br>
<input type="submit" name="allok" value="OK">
</th>
<th>Incident</th>
<th>Commentaire</th>
</tr><%
i=0
j=1
do while not checkRS.EOF
modulo = i mod 2
if modulo=0 then
couleur="ligne1"
bg="#fff0f5"
else
couleur="ligne2"
bg="#fffff0"
end if
Response.Write "<tr class=""" & couleur & """>"
Response.Write "<td align=""center"">" & checkRS("control_domaine") & "</td>" 'nom de domaine
Response.Write "<td align=""center"">" & checkRS("control_name") & "</td>" 'nom du contrôle
if checkRS("control_procédure") <> "" then
Response.Write "<td align=""center""><a href=""" & checkRS("control_procédure") & """>Lien</a></td>" 'si la procédure existe on crée un lien vers la procédure
else
Response.Write "<td align=""center"">--</td>" 'sinon on met une case vide
end if
Response.Write "<td align=""center""><input style='background-color:" &bg& "' type=""text"" maxlength=""2"" size=""1"" name=""result" & i & """ "
if Request.Form("result"&i)="" and Request.Form("allok")="OK" then
Response.Write "value=""OK""></td>"
elseif Request.Form("result"&i)="" and Request.Form("allok")="" then
Response.Write "></td>"
elseif Request.Form("result"&i)<>"" then
Response.Write "value=""" & Request.Form("result"&i) & """></td>"
end if
Response.write "<td align=""center""><input style='background-color:" &bg& "' type=""text"" size=""40""name=""incident" & i & """ "
if Request.Form("incident"&i)<>"" then
Response.Write "value=""" & Request.Form("incident"&i) & """"
end if
Response.Write "></td>" 'input texte pour incident
Response.write "<td align=""center""><input style='background-color:" &bg& "' type=""text"" size=""50"" name=""commentaire" & i & """ "
if Request.Form("commentaire"&i)<>"" then
Response.Write "value=""" & Request.Form("commentaire"&i) & """"
end if
Response.Write "></td>" 'input texte pour commentaire
Response.write "</tr>"
checkRS.MoveNext
i=i+1
j=j+1
loop
nb_enregistrement=checkRS.RecordCount
%>
</table>
<p class="ctrl_gauche">Pilote :
<p class="affichage_checklist">
<!--<FONT size="3"><a href="affichage_checklist_matin.asp">Affichage de la checklist</a></FONT>-->
</p>
<span class="ctrl_gauche"><select name="pilote">
<option value=""></option>
<%
requete_pilote="SELECT nom FROM tb_pilote ORDER BY nom"
set RS=CreateObject("ADODB.RecordSet")
RS.Open requete_pilote, connexion
do while not RS.EOF
if RS("nom")=Request.Form("pilote") then
choix = "selected=""selected"" "
else
choix = ""
end if
Response.Write "<option value=""" & RS("nom") & """ " & choix & " >" &RS("nom")& "</option>"
RS.MoveNext
loop
RS.Close
set RS = nothing
%>
</select></span>
<p class="ctrl_gauche">Commentaire : <FONT size="2">(255 caractères maximum)</FONT> </br>
<textarea name="general_comment" rows="3" cols="35">
<%if Request.Form("general_comment")<>"" then
Response.Write Request.Form("general_comment")
end if%>
</textarea></p>
<p class="ctrl_gauche">
<input type="submit" name="choix_action" value="Enregistrer">
<input type="submit" name="choix_action" value="Revenir">
<input type="hidden" name="nb_rec" value="<%=nb_enregistrement%>"></p>
<%
checkRS.Close
set checkRS = nothing
end sub |
Je ne comprend vraiment pas pourquoi ça ne fonctionne pas.