Avatar billede zkov82 Nybegynder
20. juni 2005 - 13:25 Der er 8 kommentarer og
1 løsning

overfører to kolonner til excel

Hej,
Jeg har et program som henter to kolonner data fra en database. Nu skal jeg have dem overført til excel. Men jeg er ikke helt klar over hvordan det skal gøres.

Jeg regner med at jeg skal bruge en løkke med noget until eof, men mit problem er at den jo ikke bare skal ligge alle værdierne ind i en celle, men derimod lægge dem over i tilsvarende kolonner, så jeg kan bruge dem til at trække noget statistik ud.

Er der nogen som kan komme med et forslag?
Avatar billede martin_moth Mester
20. juni 2005 - 13:55 #1
Loop over alle posterne i dit recordsæt, og sæt ind i excel-arket en for en i din løkke...

Mht. at få forbindelse til og skrive til excel, så kik f.eks. på

  eksperten.dk/spm/169104

Du kan så loope over cellerne ved at skrive

  work.Worksheets("ark1").Cells(i, 1).Value 'hvor i er en tæller

Altså:

    With rsDitRecordset
      Do While Not .EOF
        work.Worksheets("ark1").Cells(i, 1).Value = !Emne
        .MoveNext
        i = i+1
      Loop
    End With
Avatar billede martin_moth Mester
26. juni 2005 - 19:33 #2
Haloo?
Avatar billede zkov82 Nybegynder
21. juli 2005 - 10:23 #3
Undskyld du, jeg har haft så sindssygt travlt på arbejdet, så jeg har ik lige haft mulighed for at komme her forbi.

Jeg tester det med det samme og kommer med en tilbagemelding.
Avatar billede zkov82 Nybegynder
21. juli 2005 - 10:42 #4
Jeg har kigget lidt på det, og jeg får bare en "subscript out of range" fejl.
Hvis jeg debugger, fremhæver den denne linie: work.Worksheets("ark1").Cells(i, 1).Value = "test"

Her er al den kode jeg har skrevet indtil videre:

Dim ex As Excel.Application
    Set ex = New Excel.Application
    ex.Visible = True
    Dim work As Excel.Workbook
    Set work = ex.Workbooks.Open("c:\it-support\temp.xls")

With rs
      Do While Not .EOF
        work.Worksheets("ark1").Cells(i, 1).Value = "test"
        .MoveNext
        i = i + 1
      Loop
    End With


Set work = Nothing
Set ex = Nothing
Avatar billede zkov82 Nybegynder
21. juli 2005 - 12:05 #5
Jeg har rodet med det og nu undgår jeg den tidligere fejl.

Jeg bør måske lige specificere hvordan min lille program virker:
Man indtaster en dato, og derefter køres en sql, sådan at der kun hentes data fra den ønskede dato.

Når jeg så forsøger at skrive det over til excel, skrives der ingenting for stort set alle datoer, undtaget i går (20/7). Hvis jeg vælger den dato, får jeg en "Run-time error 1004" "Application-defined or object-defined error"

Det skal lige siges at den db jeg henter fra ligger på en server, som jeg connecter til via. informix.
Avatar billede martin_moth Mester
21. juli 2005 - 21:08 #6
fejlem med out of range får du fordi 'i' til at starte med har værdien nul. Du skal starte med at sætte den lig 1 før du starter løkken.

Du må være mere specifik mht. det andet. Får du overført alle data til dit recordset, og er problemet blot at få det skrevet til excel? Eller er problemet at få det hentet over i recordsættet? Eller ...?
Avatar billede zkov82 Nybegynder
25. juli 2005 - 14:42 #7
Hej Martin,
Jeg går på ferie nu, og får ikke testet det inden.
Så der går nok lige noget tid inden du får et ordentligt svar tilbage.
Håber det er iorden
Zkov
Avatar billede zkov82 Nybegynder
25. juli 2005 - 16:01 #8
Jeg havde lige lidt tid alligevel.....

Hvordan får jeg nu brugernavnet over i excelarket?

Der hvor der står test

work.Worksheets("ark1").Cells(i, 1).Value = "test"

skal jeg jo have informationen fra sql-sætningen.

jeg har prøvet
work.Sheets(1).Cells(i, 1).Value = rs(us)

men det virker ikke (havde heller ikke regnet med det, men blev nød til at prøve)

Help?
Avatar billede zkov82 Nybegynder
25. juli 2005 - 17:26 #9
Nå...nu virker det, så du får bare dine points :)
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