Avatar billede tingholm Mester
04. juli 2012 - 08:54 Der er 4 kommentarer og
1 løsning

Løkke løber for langt

Hej Eksperter

jeg vil gennemløbe et recordset og tilføje flere records løbende:
[code]
rst.MoveFirst
While Not rst.EOF
  add.AddNew
  For Lngx = 0 To add.Fields.Count - 1
    add.Fields(Lngx) = rst.Fields(Lngx)
  Next
'lidt mere kode her
  add.Update
  rst.MoveNext
Wend
[/code]

jeg har et ekstra recordset (add) for at kunne kopiere data fra rst til add. Jeg var lidt spændt på hvorvidt min While ville tage de nye rækker også og dermed aldrig blive færdig, men det lader ikke til at være tilfældet.

MEN når første post kopieres, bliver den nye post behandlet inden løkken er færdig. Hvis mine stamdata er 10 rækker, behandler løkken altså 11 rækker (så i stedet for at doble de 10 op til 20, bliver de til 21)

Nogen bud på hvad der går galt og hvad jeg kan gøre for at afhjælpe?
Avatar billede tingholm Mester
04. juli 2012 - 09:28 #1
Prøvede at ændre While lækken til en For, så spiller det...
[code]For LngY = 0 To rst.RecordCount
'kode
Next[/code]

Men While løkken burde vel også kunne bruges, og jeg finder den mere oplagt at vælge her, så hvis nogen kender svaret på hvorfor det går galt vil jeg gerne høre det :)
Avatar billede tingholm Mester
04. juli 2012 - 09:29 #2
hmm ' skulle være ' for at kommentere ud... Men det må man åbenbart ikke i en code blok. Håber ikke det forstyrrer for meget ;)
Avatar billede H_Klein Novice
13. juli 2012 - 18:09 #3
Hej,

Bare for at være sikker på at jeg har forstået det korrekt.

Du har f. eks. en kolonne med 10 rækker.
Disse ti rækker behandles med en kode som du har lavet.
Nu skal der tilføjes nogle flere rækker i samme kolonne.
Disse rækker kommer fra en anden fil og lægges ind efter de første 10 rækker så der nu er 15 rækker istedet.
Nu skal dit loop så igen starte fra række et, men naturligvis køre frem til og med række 1 istedet for række 10. er det korrekt?

Med venlig hilsen

Henrik
Avatar billede tingholm Mester
16. juli 2012 - 00:01 #4
koden skal gå alle rækker igennem og kopiere dem, så 10 rækker bliver til 20.
Men det lader til at den behandler den første af de nye rækker også, så de 10 rækker bliver til 21.
Jeg var bekymret om den ville løbe for evigt, med også at behandle de nye rækker og kopiere dem igen og igen, men det er ikke tilfældet...
Jeg har lavet løkken til en 'for løkke' i stedet, nu lader det til at køre, men det er da lidt sært... :/
Avatar billede tingholm Mester
10. januar 2014 - 14:40 #5
luk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester