Avatar billede spottie Nybegynder
06. april 2009 - 12:18 Der er 9 kommentarer

Hjælp til at få data fra access query til Excel?

Hej Eksperter

Er der nogen der ude som kan give et udførligt eksempel på hvordan jeg køre en query i access database og får data fra resultaten kopieret over i et fanebald i Excel?

Det er Access og Excel 2007.


Håber nogen kan hjælpe.


Mvh
spottie
Avatar billede hugopedersen Nybegynder
06. april 2009 - 12:23 #1
Den simple måde - højreklik på din query og vælg export - Excel
Så får du en fil du kan åbne i Excel.

Hvis du mener at du vil have resultatet ind i et eksisterende regneark, så hedder det VBA kode - og det er et større projekt.
Avatar billede jensen363 Forsker
06. april 2009 - 12:26 #2
Dette er et eksempel på en forespørgsel

Set rs = db.OpenRecordset("Arrival_5_Weeks_1")

som aktiveres og indholdet kopieres til et specifik regneark

Const conWKB_NAME = "\\Cphfil-01\managementflash\MailReport\ManagementFlash.xls"

til en bestemt arkfane

Const conSHT_NAME = "Short Term Bookings"
i et bestemt område af regnearket

Const conRANGE = "A131:I159"



Public Function sCopyRSToNamedRange_001()

Dim objXL As Excel.Application
Dim objWkb As Excel.Workbook
Dim objSht As Excel.Worksheet
Dim db As Database
Dim rs As Recordset

Const conMAX_ROWS = 20000
Const conSHT_NAME = "Short Term Bookings"
Const conWKB_NAME = "\\Cphfil-01\managementflash\MailReport\ManagementFlash.xls"
Const conRANGE = "A131:I159"

  Set db = CurrentDb
  Set objXL = New Excel.Application
  Set rs = db.OpenRecordset("Arrival_5_Weeks_1")
  With objXL
    .Visible = False
    Set objWkb = .Workbooks.Open(conWKB_NAME)
    On Error Resume Next
    Set objSht = objWkb.Worksheets(conSHT_NAME)
    If Not Err.Number = 0 Then
      Set objSht = objWkb.Worksheets.Add
      objSht.Name = conSHT_NAME
    End If
    Err.Clear
    On Error GoTo 0
    objSht.Range(conRANGE).ClearContents
    objSht.Range(conRANGE).CopyFromRecordset rs
   
  objWkb.Close SaveChanges:=True
  objXL.Quit
   
  End With
   
  Set objSht = Nothing
  Set objWkb = Nothing
  Set objXL = Nothing
  Set rs = Nothing
  Set db = Nothing

End Function
Avatar billede jensriis Novice
06. april 2009 - 12:27 #3
Fgl. VBA kode skulle gøre den.

DoCmd.OutputTo acOutputQuery, "NavnetPåDinQuery", acFormatXLS, "FuldStiogNavnPåDenFileDuØnskerOutputI"


Du kan evt. lægge koden ind bag en kanp på et skærmbillede
(ved klik hændelse)

NB!! Jeg bruger kun officce 2003 men mon ikke den går i 2007 også
Avatar billede spottie Nybegynder
06. april 2009 - 13:46 #4
Jensen363....

Hvordan definere jeg, hvilken database den skal tage fra altså med en sti og database navn? Fordi databasen behøver ikke nødvendigvis at være åben når denne makro køres.


Mvh
spottie
Avatar billede jensen363 Forsker
06. april 2009 - 13:53 #5
Er der så ikke snarere behov for en dataimport i Excel ???
Avatar billede spottie Nybegynder
06. april 2009 - 13:58 #6
Jensen363...


Måske, kan du så give et eksempel på det?
Avatar billede jensen363 Forsker
06. april 2009 - 14:09 #7
Det er ikke en metode jeg benytter så ofte, idet jeg generelt benytter Access som mit foretrukne medie, og udelukkende Excel som rapporteringsskabelon når der er tale om data detr skal videresendes ved hjælp af eksempelvis outlook o.lign.

Her finder jeg det mest anvendeligt at eksportere fra Access til Excel og ikke omvendt, da jeg så har sikkerhed for at jeg altid benytter opdaterede data.

Di kan lave dataopslag i Access-tabeller fra Excel uden at aktivere Access ( Import External Data )- men jeg mener ikke du kan gøre det til en forespørgsel uden at aktivere databasen først
Avatar billede spottie Nybegynder
06. april 2009 - 14:14 #8
Jensen363...


Oki, men selvfølgelig skal databasen aktiveres, men jeg mener blot, at det jeg skal bruge, der er databasen ikke åben, dvs., at der gerne skulle være en metode i din kode hvor jeg også i excel makro kunne åbne databasen og derefter køre din kode igennem, men kan du ikke hjælpe med det?
Iden kode du lavede herinde skrev du bare "CurrentDb" som database, men jeg har behov for at kunne nævne en bestemt database fil, men som du skriver skal jeg også kun have data fra Access til Excel og ikke omvendt. Der skal ikke opdateres noget som helst i Access databasen kun et query og det data skal så kopieres ud til et excel faneblad i en makro.

:-)

Mvh
spottie
Avatar billede jensen363 Forsker
06. april 2009 - 14:35 #9
Et eksempel på hvorledes du kan hente data i Excel

Måske en mulighed

http://books.google.dk/books?id=potgcwGm2IsC&pg=PA203&lpg=PA203&dq=%22Sub+HentProdukter()%22&source=bl&ots=0ReRR8NAUu&sig=arg6jfysDTiFiPzi173rlqMK_eY&hl=da&ei=1vbZSZSMIubRjAfrurCWDQ&sa=X&oi=book_result&ct=result&resnum=2
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