Avatar billede zkov82 Nybegynder
15. november 2005 - 19:07 Der er 3 kommentarer

indsættelse fra sql via nested loops

Jeg henter data fra en db via sql. Det er en række navne (som jeg egentlig bare ønsker at tælle, men det virker ikke med den version af sql jeg bruger, se:http://www.eksperten.dk/spm/664750)
Problemet er:
først kører jeg en sql, hvor jeg gemmer nogle referencer jeg skal bruge senere i et array:

Dim arr(100) As String


i = 0
Do While Not rs.EOF
'MsgBox (rs("session"))
arr(i) = rs("session")
rs.movenext
i = i + 1
Loop

Ud fra disse referencer skal jeg så hente data fra en anden db:

x = 1
Do While x <= i
On Error Resume Next
'MsgBox (x)
Set rs2 = cn2.Execute("Select count(*) as antal from " & ind & " where EISSTATE = 1 ")

Set ws = Sheets("autoArk")
    ws.Activate
    y = 1
    Do While Not rs2.EOF
        ws.Cells(y, x).Value = rs2("antal")
        rs2.movenext
        y = y + 1
       
    Loop
   
    'MsgBox (arr(x))
x = x + 1
Loop

Her går det galt; mit program går i uendelig løkke. Jeg kan ikke forstå hvorfor da jeg ved at den kun skal lave ca. 65 sql-kald. Dog er der muligvis mange poster i hver tabel, men der kommer intet output til cellerne i excel.

Er der nogen der kan hjælpe? en total omskrivning er selvfølgelig altid muligt hvis jeg har fucket fuldstændig op i det.
Avatar billede sjap Praktikant
15. november 2005 - 21:14 #1
Kan du se hvilken løkke, der "løber løbsk"?
Avatar billede sjap Praktikant
15. november 2005 - 21:18 #2
Så vidt jeg lige kan se, så kan du godt flytte lidt erklæringer ud af løkkerne. Jeg kan i hvert tilfælde ikke lige se noget formål i at de ligger inde i, men det kan skyldes at det kun er noget af koden, der vises. Jeg går f.eks. ud fra at variablen "ind" bliver tildelt en værdi.

x = 1
'On Error Resume Next
Set rs2 = cn2.Execute("Select count(*) as antal from " & ind & " where EISSTATE = 1 ")
Set ws = Sheets("autoArk")
Do While x <= i
    ws.Activate
    y = 1
    Do While Not rs2.EOF
        ws.Cells(y, x).Value = rs2("antal")
        rs2.movenext
        y = y + 1
    Loop
    x = x + 1
Loop
Avatar billede sjap Praktikant
15. november 2005 - 22:21 #3
Ok, kan se at det måske ikke dur med rs2 alligevel (kom til at blande noget Access ind, hvor jeg ville have brugt en movefirst, men den dur vist ikke fra Excel). Så glem det bare, og undskyld forstyrrelsen.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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