Avatar billede runeklausen2 Nybegynder
11. maj 2005 - 22:00 Der er 13 kommentarer og
1 løsning

Fra Query til Excel i access 2000

Hejsa, jeg har brug for at et resultat fra en query bliver exporteret til excel.

Jeg har kigget lidt i tidligere post og har fundet frem til det her:

Dim oApp As Object
    Dim wbk As Object
    Dim produkter As String
    Dim I As Integer

    Set oApp = CreateObject("Excel.Application")
   
   
    'Only XL 97 supports UserControl Property
    On Error Resume Next
    oApp.UserControl = True
   
    Dim rst As DAO.Recordset
   
    Set rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("produkter", dbOpenTable)
    Set wbk = oApp.Workbooks.Add
    wbk.Worksheets("Ark1").Cells(1, 1).Value = "ID"
   
    For I = 2 To rst.RecordCount + 1
    wbk.Worksheets("Ark1").Cells(I, 1).Value = Format(rst.Fields![id])
    rst.MoveNext
    Next
    wbk.Worksheets("Ark1").UsedRange.Columns.Autofit

Men af en eller anden grund bliver min recordCount = 1 hver gang, på trods af at der 3000+ poster i den tabel som hedder produkter.
Excel åbner fint og der står ID i første kolonne, som der burde, men pga. recordCount bliver = 1 så køre den jo ikke så meget, jeg håber nogle kan hjælpe mig? Og i stedet for at køre fra tabel til excel ville jeg gerne fra query til excel så man kunne angive hvilke type af produkter som skal exporteres.

f.eks. om det er alle poster som har værktøj som type, eller om det er hårdehvidevare
Avatar billede terry Ekspert
11. maj 2005 - 22:37 #1
try

rs.movefirst
For I = 2 To rst.RecordCount + 1
.
Avatar billede terry Ekspert
11. maj 2005 - 22:37 #2
sorry
rs.movelast
rs.movefirst
Avatar billede terry Ekspert
11. maj 2005 - 22:40 #3
You should maybe also try

Next I

Not just

Next
Avatar billede terry Ekspert
11. maj 2005 - 22:41 #4
you could also try

Dim I as integer
I = 1
Do Until rs.eof
I = I + 1
wbk.Worksheets("Ark1").Cells(I, 1).Value = Format(rst.Fields![id])
rst.MoveNext
Loop
Avatar billede terry Ekspert
11. maj 2005 - 22:46 #5
To us ea query instead of a table then just make a query and then replace

..OpenRecordset("produkter", dbOpenTable)

with
..OpenRecordset("qryprodukter", dbOpenTable)
Avatar billede terry Ekspert
11. maj 2005 - 22:55 #6
..OpenRecordset("qryprodukter")
Avatar billede runeklausen2 Nybegynder
11. maj 2005 - 23:41 #7
moveLast
moveFirst semmes to do the trick
Avatar billede runeklausen2 Nybegynder
12. maj 2005 - 00:00 #8
Do you know how I make the text bold og italic ?
...Value = "ID"
How do I make it bold when it's transfered to excel ?
Avatar billede terry Ekspert
13. maj 2005 - 12:37 #9
Thanks

I dont use Excel so much so I cant say how to change the text format, but an idea is to

wbk.Worksheets("Ark1").Cells(I, 1).FontWeight= 700


NOTE: THis is just an example so I dont  know if FontWeight or 700 (bold) is valid in Excel
Avatar billede mugs Novice
13. maj 2005 - 15:47 #10
Sådan skifter jeg font:

With Selection.Font
    .Name = "Times New Roman"
    End With
    Selection.Font.Bold = True
Avatar billede terry Ekspert
13. maj 2005 - 19:51 #11
hope your input helps mugs
og god Pinse
Avatar billede mugs Novice
13. maj 2005 - 19:54 #12
Tak terry - Og i lige måde.
Avatar billede runeklausen2 Nybegynder
14. maj 2005 - 11:22 #13
tester lidt senere i dag, har desværre være optaget af andre ting, tak hjælpen
Avatar billede runeklausen2 Nybegynder
15. maj 2005 - 22:10 #14
Den laver ikke teksten bold, jeg må gøre noget forkert.

jeg har skrevet:
With wbk.Worksheets("Ark1")
.Range("A1:R1").Select
.Selection.Name = "Verdana"
.Selection.Font.Bold = True
End With

Det er kun select som virker, er det mit objekt som er skævt på den, eller ?
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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