Toon posts:

[ASP] BOF werkt niet?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een lijst met personen die ik wil doorlopen met een "terug" en "verder" knop. Op het moment dat ik bij de eerste persoon ben, moet het terug knopje naar de laatste persoon uit de lijst linken. Ben ik bij de laatste persoon dan moet het verder knopje linken naar de eerste persoon uit de lijst.

De gegevens hiervoor worden uit de database gehaald en gesorteerd op "toonvolgorde" en dus niet op een uniek veld (wat er wel is). In de lijst met alle unieke velden kunnen ook nummers "ontbreken", dat wil zeggen dat er een persoon uit verwijderd is. De lijst met unieke nummers zou dus kunnen zijn [1,2,5,6,9,10].


De code die ik gebruik is:
'Welke moet er getoond worden?
intVolgnummer = Request("volgnummer")

'Ophalen data, gesorteerd op toonvolgorde
Set rsGetWieIsWie = Server.CreateObject("ADODB.RecordSet")
Set rsGetWieIsWie = DB_OpenRS(Query_GetWieIsWie(), adUseClient, adOpenDynamic, adLockPessimistic)

'Haal de te tonen informatie op
rsGetWieIsWie.Find "wiw_Nummer = '"& intVolgnummer &"'"

strImageSource = Trim(rsGetWieIsWie("wiw_Foto"))
strNaam = Trim(rsGetWieIsWie("wiw_Naam"))
strEmail = Trim(rsGetWieIsWie("wiw_Email"))
strFunctie = Trim(rsGetWieIsWie("wiw_Functie"))
strTekst = Trim(rsGetWieIsWie("wiw_Tekst"))
strQuote = Trim(rsGetWieIsWie("wiw_Quote"))

'--- Bepalen wie de volgende persoon is
'Naar het volgende record
rsGetWieIsWie.MoveNext
'Zijn we bij het laatste record?
If rsGetWieIsWie.EOF Then
'ga dan naar de eerste
rsGetWieIsWie.MoveFirst
End If
'Het nummer voor de volgende persoon van wie is wie
intVolgnummerVolgende = rsGetWieIsWie("wiw_Nummer")


'Terug naar het huidige record dat ook getoond wordt
rsGetWieIsWie.Find "wiw_Nummer = '"& intVolgnummer &"'"
'Zijn we bij het eerste record?
If rsGetWieIsWie.BOF Then
%>WEL DE EERSTE<%
'ga dan naar de eerste
rsGetWieIsWie.MoveLast
Else
%>NIET DE EERSTE<%
'anders 1 terug naar de vorige in de lijst
rsGetWieIsWie.MovePrevious
End If
'Het nummer voor de vorige persoon van wie is wie
intVolgnummerVorige = rsGetWieIsWie("wiw_Nummer")
Om de volgende persoon te krijgen lukt wel, maar de vorige lukt niet! Het lijkt wel of BOF niet werkt.... Ook werkt AbsolutePosition = 1 niet... *zucht*... Kent iemand dit probleem? Of doe ik iets verkeerd in m'n code?

Alvast bedankt.

Verwijderd

Wat voor database gebruik je?

Probeer eens rsGetWieIsWie.Supports(adMovePrevious).

Verwijderd

Topicstarter
De database is een SQL Server 7.0.

Verwijderd

Topicstarter
Op dinsdag 12 februari 2002 12:19 schreef Doekman het volgende:
Wat voor database gebruik je?

Probeer eens rsGetWieIsWie.Supports(adMovePrevious).
Moet dit op de plek van
rsGetWieIsWie.Find "wiw_Nummer = '"& intVolgnummer &"'"

Of bij de Then statement?
If rsGetWieIsWie.BOF Then


Groet...

Verwijderd

Topicstarter
Niemand? :'(

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 21:33

mulder

ik spuug op het trottoir

Wat wertk er nou precies niet, er staat nu bij het laatste stukkie:
Zoek een record. Als dit het eerste record is, ga naar de laatste, is het niet het eerste ga dan 1 terug (<- dus dat wil wil niet zeggen naar het eerste record!)

Edit:
zet effe je code tussen tags:
code:
1
2
3
4
  dat
     leest
        wat
         fijner

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Op dinsdag 12 februari 2002 14:54 schreef Don Facundo het volgende:
Wat wertk er nou precies niet, er staat nu bij het laatste stukkie:
Zoek een record. Als dit het eerste record is, ga naar de laatste, is het niet het eerste ga dan 1 terug (<- dus dat wil wil niet zeggen naar het eerste record!)
Als het huidige record het eerste is, moet het knopje linken naar de laatste. Is het huidige record niet de eerste, dan moet het knopje linken naar het vorige record (dus vorige record in de rij van identificerende nummers)

  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Is je cursor toevallig forward-only?

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 21:33

mulder

ik spuug op het trottoir

Weet je wel zeker dat ie een record vind?
Dit omdat:
If the criteria is met, the current row position is set on the found record; otherwise, the position is set to the end (or start) of the Recordset

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Bedankt voor jullie antwoorden, maar ik heb de oplossing al...

Deze code:
'# Bepaal ID van volgende record
If rsGetWieIsWie.AbsolutePosition = rsGetWieIsWie.RecordCount Then
rsGetWieIsWie.MoveFirst
Else
rsGetWieIsWie.MoveNext
End If
intVolgnummerVolgende = rsGetWieIsWie("wiw_Nummer")

'# Terug naar huidge record
rsGetWieIsWie.MoveFirst
rsGetWieIsWie.Find("wiw_Nummer = '"& intVolgnummer &"'")

'# Bepaal ID van vorige record
If rsGetWieIsWie.AbsolutePosition = 1 Then
rsGetWieIsWie.MoveLast
Else
rsGetWieIsWie.MovePrevious
End If
intVolgnummerVorige = rsGetWieIsWie("wiw_Nummer")

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 12-09 23:01
Was het niet zo dat recordcount helemaal niet betrouwbaar was?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1