Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Anders (software)

do loop until ( geen huidig record)

johan kruize
7 antwoorden
  • Ik heb een functie met een do….. Loop until eof() en daarbinnen een lus die loopt totdat aan een voorwaarde wordt voldaan.

    De functie stopt uiteindelijk met de foutmelding "geen huidig record". Ik kan niet achterhalen waardoor dat komt. De hele tabel wordt wel doorlopen maar het is net of hij nog een movenext opdracht teveel uitvoert en dan vastloopt op het moment dat de controle weer uitgevoerd moet worden (er wordt wel geconstateerd dat eof() waar is maar toch gaat ie door.

    Wie kent dit en weet wat de oplossing is

    Ik heb het ook al geprobeerd met do while eof()= false en do while not eof() en do…loop until eof()=false enz ook in de geneste lus vraag ik nog af of eof() bereikt is
  • Om welk progje gaat het?
    Is misschien wat duidelijker voor iemand zoals mij :D

    mzzl.

    :evil: MajinBuu :evil:
  • Hoe bouw je jouw for-lus op? Waarschijnlijk loopt jouw for-lus 1 keer teveel, waardoor er dus geen huidig record is bij de laatste keer. Ik weet niet welke programmeertaal je gebruikt, maar zal je proberen een voorbeeld te geven.

    For i = 0 To objRst.RecordCount - 1

    je laat je for-lus gewoon lopen van 0 tot 1 minder als er records zijn, dan wordt de lus altijd correct doorgelopen
  • Je test pas op het einde van de loop. Bij het laatste record is de conditie dus nog waar (test op het einde) en de lus wordt nogmaals doorlopen (nu met een niet bestaand record).
    Je kunt beter een while-loop gebruiken; dan wordt de test namelijk in het begin gedaan.
  • Sorry, ik heb het over VBA in Access 2000 (dat krijg je met die uitgebreide forums).

    Ik gebruik geen for next lus maar een do …. while lus, van een teller is dus geen sprake.

    Met Wim ben ik niet eens want de movenext opdracht staat voor het einde van de lus gegeven, dus op het moment van de test is het einde al bereikt …toch ? ( do until eof() = true).

    Bij het afvragen aan het begin van de lus krijg ik de foutmelding zoals gezegd ook

    Nieuwe oplossingen zijn dus nog welkom
  • Plaats je stukje code eens hier (of op je website als je die hebt). Doe je niet per ongeluk een extra movenext in de binnenste loop onder zekere condities of zo?
  • Mijn succesformule voor het lezen van een bestand:

    Lees record
    Do while niet eof
    verwerk record
    lees record
    einde loop

    Gaat nog altijd goed!!

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.