Avatar billede gasher Nybegynder
07. maj 2001 - 08:11 Der er 6 kommentarer og
1 løsning

Export fra Access97 til Excel97

Jeg har problemer med at eksportere en tabel fra Access til en eksisterende fil i Excel. Jeg har i forvejen eksporteret en tabel til en fil. Dette gør jeg med kommandoen:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, \"tabelnavn\", \"Sti til filnavn\", False, \"\" Når jeg er færdig med at behandle denne tabel i Excel, vil jeg gerne importere endnu en tabel på et nyt ark i det samme excel dokument. Er der nogle ideer at hente? :-)
Avatar billede ikuyucu Nybegynder
07. maj 2001 - 08:25 #1
Det kan du desværre ikke, fordi Excel ikke har muligheden for at importere data, men kun kan åbne en fil, eller hente data via ODBC.

Hvis du vil hente data i et nyt ark bliver du nød til først at indsætte et nyt regneark som du gør via menuen Indsæt. Derefter kan du via Microsoft Query hente de data som du har brug for.

Jeg er ikke helt sikker men jeg mener faktisk at du kan eksportere til et regneark direkte i Access via VBA.

Held og lykke med det.
Avatar billede gasher Nybegynder
07. maj 2001 - 09:35 #2
Jeg vil ikke importere fra Excel men eksportere en ny tabel fra Access over i et nyt ark i det samme dokument i Excel.
Avatar billede jolo Nybegynder
07. maj 2001 - 14:37 #3
Du kan sagtens importere til Excel, det foregår via menuer, i excel er der et punkt der hedder hent eksterne data og herfra kan du så vælge en database - tabel, kolonnenavn. Håber det er svar nok
Avatar billede mugs Novice
07. maj 2001 - 16:26 #4
Du eksporterer fra Access til Excel via denne kommando:

Dim Obvar As Object, wkb As Object, Rst As Recordset
Dim I As Integer
Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset(\"Tyveri\", dbOpenTable)
Set Obvar = CreateObject(\"excel.application\")
Obvar.Visible = True
Set wkb = Obvar.Workbooks.Add
        wkb.Worksheets(\"Ark1\").Cells(1, 1).Value = \"Dato\"
        wkb.Worksheets(\"Ark1\").Cells(1, 2).Value = \"Time\"
        wkb.Worksheets(\"Ark1\").Cells(1, 3).Value = \"Ugedag\"
       
For I = 2 To Rst.RecordCount + 1
        wkb.Worksheets(\"Ark1\").Cells(I, 1).Value = Str$(Rst.Fields![Datotid])
        wkb.Worksheets(\"Ark1\").Cells(I, 2).Value = Str$(Rst.Fields![Time])
        wkb.Worksheets(\"Ark1\").Cells(I, 3).Value = Format(Rst.Fields![Ugedag])
       
Rst.MoveNext
Next

Set Obvar = Nothing

De første 3 linier \"Value\" sætter overskrifter på regnearket. De næste 3 \"Rst.Fields\" overfører data. Bemærk at du ved String-felter skal skrive \"Format\" foran feltnavnet.

Mvh / Mugs
Avatar billede mugs Novice
07. maj 2001 - 21:35 #5
gasher: I linien \"Set Rst....\" skal ordet \"Tyveri\" erstattes af navnet på tabellen du vil overføre.

Mugs
Avatar billede mugs Novice
07. maj 2001 - 21:40 #6
Og så lige en sidste ting:

Slut med denne:
wkb.Worksheets(\"Ark1\").UsedRange.Columns.AutoFit

som tilpasser bredden på dine kolonner i Excel.

Og så skal jeg nok holde min mund!!!

Mugs
Avatar billede gasher Nybegynder
08. maj 2001 - 07:12 #7
Tak for det hurtige svar Mugs.
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