Entwickler-Ecke

Datenbanken - Repeat beenden


Nomis - So 15.12.02 20:20
Titel: Repeat beenden
Hallo
Habe ein Problem, und zwar hab ich folgende Schleife


Quelltext
1:
2:
3:
4:
repeat
  zahl := random(148) + 1;
  table1.Locate('ID', zahl, [loCaseInsensitive]);
until table1.FieldByName('Kann').AsInteger = 0;


Jetzt schreibe ich jedesmal wenn eine 0 gefunden wurde und die Frage richtig beantwortet wurde eine 1 in das Feld kann.
Wenn es nun kein Feld mehr mit einer 0 gibt stürtzt das Program ab.
Was kann ich machen ??

Danke schon mal im Vorraus


bis11 - So 15.12.02 21:39

Zähle doch als erste die Felder, die eine Null haben und dann packe das ganze in eine For-Schleife.


smiegel - So 15.12.02 22:26

Hallo,

wenn Du locate benutzt, musst Du auch prüfen, ob überhaupt ein Datensatz gefunden wurde. Außerdem, was willst Du mit dem Codefragment anstellen? Ich verstehe den Code überhaupt nicht.


Nomis - So 15.12.02 22:31

Das ist so ne art Vokabel programm , bei dem Zufällig ein Datensatz ausgewählt wird, und wenn die Richtige Vokabel eingegeben wurde wird in " kann" eine 1 geschrieben. Nur irgendwann gibt es nur noch 1 en. dann stürtzt das Programm ab, da es nicht mehr aus der Repeatschleife rauskommt.

Das mit For next ist nicht so gut glaub ich, da mann ja auch falsche antworten geben kann die dann ja mitzählen würden