Pokkers - ellers elegant, men nedenstående virker ikke helt efter hensigten. Se på
www.vih.dk/sidste_nyt.asp, hvad de tre sub-rutiner returnerer iht. sidste del af nedenstående.
set RS = Server.CreateObject("ADODB.Recordset")
const adUseClient = 3
const adOpenKeyset = 1 ' Jeg mener det er hurtogere i dette tilfælde
sql = "SELECT * FROM NYHEDER ORDER BY Dato DESC"
RS.Open sql, conn, adOpenKeyset, adUseClient, &H0001 ' adCmdText
' Find position for idnyhed i recordsettet
pos = -1
if not RS.EOF and RS("ID") = idnyhed then
pos = 0
else
pos = -1
do while not RS.EOF and RS("ID") <> idnyhed
pos = pos + 1
RS.MoveNext
loop
end if
' Sub der behandler nyhed
sub CheckUdskriv(APos)
' Kontroller om næste og forrige nyhed ikke findes.
' Det sker når valgte nyhed (idnyhed) er den første eller sidste
if pos <> -1 and pos < RS.RecordCount then
RS.MoveFirst
RS.Move(APos)
' Udskriv nyhed eller hvad der nu skal ske
returnid = rs("id")
else
' Position findes ikke
end if
end sub
CheckUdskriv(pos + 1) ' Forrige nyhed
forrige = returnid
response.write "Forrige: " & forrige & "<br>"
CheckUdskriv(pos) ' Valgte nyhed
valgte = returnid
response.write "Valgte: " & valgte & "<br>"
CheckUdskriv(pos - 1) ' Næste nyhed
naeste = returnid
response.write "Næste: " & naeste & "<br>"