Hej! Jag är ganska säker på att anledningen till att loopen avslutas inte är din "exit for". Tack för hjälpen! Är lite svårt att förstå vad du försöker gör genom att bara tolka din kod. Var vänlig att ta med all din kod och beskriv vad det är du vill utföra. Jag har försökt "städa" upp din kod. JAg vet inte om det hjälper dig.exit for i funktion avslutar loop som anropar funktionen
Jag ser inte vad jag har gjort för fel i nedanstående kod. Jag är blind helt enkelt.
Det som händer är att loopen "for j = 1 to intAntalProdukter" som ska köras 12 gånger avbryts när funktionen "nextFreeBokaNr" anropas. Resultatet blir alltså att loopen bara körs en gång. I funktionen finns det en exit for och om jag bortkommenterar den raden så körs loopen som den ska! Men meningen är ju att exit for enbart ska avsluta for-loopen som den körs i, eller? Har ni idéer på hur jag ska lösa detta?
<code>
tidFran = "12:00"
tidTillDB = "20:00"
tid_timmar = 4
tid_minuter = 0
intAntalProdukter = 12
antalBoka = 15
datum = "2004-05-08"
antalTidsperioder = 2
tidlangd = (tid_timmar * 60 ) + tid_minuter
bokacount = 0
tidTillDB = DateAdd("N", tidlangd, CDate(tidFran))
for x = 1 to antalTidsperioder
for j = 1 to intAntalProdukter
if bokacount < antalBoka then
tempnr = nextFreeBokaNr (tginfo.tillgProduktID, datum, tidFran, tidTillDB, intAntalProdukter,tginfo.tillgdb, objTGConnect, tginfo.tillgButik)
.........
bokacount = bokacount + 1
end if
next
next
function nextFreeBokaNr (produktID, datum, fran, till, antalProdukter, byref tillgDB, byref tillgCon, byref tillgButik)
redim arrNr (antalProdukter + 1)
.....
nr = antalProdukter + 1
for d = 1 to ubound(arrNr)
if cint(arrNr(d)) = 0 then
nr = d
exit for
end if
next
nextFreeBokaNr = nr
end function
</code>Sv: exit for i funktion avslutar loop som anropar funktionen
Deklarera alla variabler som du använder i funktionen så att de blir lokala för funktionen. Ifall du använder samma variabler utanför funktionen så kommer de ju att krocka.
Jag vet inte vad du har för kod där du skrivit ....... men det kan mycket väl vara den som orsakar att loopen avslutas.Sv: exit for i funktion avslutar loop som anropar funktionen
Det var precis som du trodde.Sv: exit for i funktion avslutar loop som anropar funktionen
<code>
Dim tid_timmar
Dim tid_minuter
Dim tidlangd
Dim datum
Dim tidFran
Dim tidTillDB
Dim antalBoka
Dim antalTidsperioder
Dim intAntalProdukter
Dim arrNr()
tid_timmar = 4
tid_minuter = 0
tidlangd = (tid_timmar * 60 ) + tid_minuter
datum = CDate("2004-05-08")
tidFran = CDate("12:00:00")
tidTillDB = DateAdd("N", tidlangd, tidFran)
antalBoka = 15
antalTidsperioder = 2
intAntalProdukter = 12
bokacount = 0
For x = 1 To antalTidsperioder
For j = 1 to intAntalProdukter
If bokacount < antalBoka Then
tempnr = nextFreeBokaNr (tginfo.tillgProduktID, datum, tidFran, tidTillDB, intAntalProdukter, tginfo.tillgdb, objTGConnect, tginfo.tillgButik)
''.........
bokacount = bokacount + 1
End if
Next
Next
Function nextFreeBokaNr(produktID, datum, fran, till, antalProdukter, ByRef tillgDB, ByRef tillgCon, ByRef tillgButik)
Dim d
ReDim Preserve arrNr(antalProdukter + 1)
NextFreeBokaNr = antalProdukter + 1
For d = 1 to UBound(arrNr)
If arrNr(d) = 0 Then
NextFreeBokaNr = d
Exit For
End if
Next
End function
</code>