Hoe de laatste recordset uit een tabel voorselecteren in een listbox

Status
Niet open voor verdere reacties.

leifoet

Gebruiker
Lid geworden
7 okt 2007
Berichten
326
Probleem in onderstaande code :
zolang de datum van de laatste recordset in een tabel groter of gelijk is aan de huidige datum klopt de 'selected value';
als de datum van de laatste recordset in de tabel evenwel kleiner is dan de huidige datum dan springt de 'selected value' naar de eerste recordset in de tabel (met een datum uit een 'ver verleden') => het is de bedoeling dat de 'selected value' in voorkomend geval (telkens) de laatste recordset (van de tabel) weergeeft.

Dank voor tips.

Code:
sql = "SELECT *, DATEDIFF('d', date(), ADatum) AS var_datedif FROM tabel ...."

<%
rs.cursortype = 1
rs.Open sql, Conn
%>

<select NAME="AId">

   <%
   rs.MoveFirst
   Do While Not rs.EOF
   %>

      <%If rs("var_datedif")>0 Then 'verleden%>
         <option value="<%=rs("AId")%>"><%=rs("Aomschrijving")%></option>

      <%ElseIf rs("var_datedif")=0 then%>
         <option selected value="<%=rs("AId")%>"><%=rs("Aomschrijving")%></option>

      <%ElseIf rs("var_datedif")<0 then 'toekomst%>
         <option value="<%=rs("AId")%>"><%=rs("Aomschrijving")%></option>

      <%
      End if
      rs.MoveNext

   Loop
   %>
</select>
 
Laatst bewerkt door een moderator:
De code hierboven heb ik aangepast zodat je de structuur kan zien.

Misschien is de string aan het eind van deze regel de oorzaak
Code:
<%If rs("var_datedif")>0 Then [COLOR="#0000BB"]'verleden%>[/COLOR]
 
ASP ken ik niet maar met wat ik weet van andere talen zou ik het simpel houden om te testen, zoiets als
Code:
<%
If rs("var_datedif") > 0 Then response.write("groter dan")
ElseIf rs("var_datedif") = 0 Then response.write("gelijk aan")
ElseIf rs("var_datedif") < 0 Then response.write("kleiner dan")
End If
%>
 
De strings : verleden - heden en toekomst waren voor mij enkel een geheugensteuntje om de juiste code te hanteren.
Bedoeling is dat de selected value op de laatste record blijft staan indien de huidige datum groter is dan de datum van de laatste record, en niet overslaat naar het begin van de tabel.

Ik probeerde daarvoor aan onderstaande code een soort appendix te breien - maar tot nu toe laat ik veel /alle steken vallen ;-)
<%If rs("var_datedif")>0 Then 'verleden%>
Hoe is 'Als de huidige datum groter is dan de datum van de record dan is var_datedif >0'
te combineren met 'er zijn geen verdere records meer in de tabel, dus fungeert de laatste record als de selected value'
Of is dat niet mogelijk ?
 
'Als de huidige datum groter is dan de datum van de record dan is var_datedif >0'
Misschien kan dit in de sql met een
WHERE CURDATE() > datumveld
WHERE NOW() > datumveld
WHERE DATE(NOW()) > DATE(datumveld)
of zoiets
 
Laatst bewerkt:
Aan de hand van de WHERE-suggesties van bron >0 en <0 van plaats gewisseld (!) - loopt nu (bijna) perfect - Dank.
 
Graag gedaan en de beste wensen voor 2021 :thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan