Avatar billede sjoran Nybegynder
26. april 2007 - 13:51 Der er 8 kommentarer og
1 løsning

Eksportere tabeller til Excel

Jeg prøver at lave et værktøj til at generere data til en månedlig projektopfølgning. Planen er at der pr. projekt skal dannes en excelfil, som så skal ligge i en filstruktur ala det her: c:\projektopfølgning\2007\2007-04\djf-lev.xls. Altså skal der laves en ny folder for hver måned, og under denne folder ligger der så en række excelfiler der gerne skulle dannes af en macro i Access.

Jeg har i Access lavet en række forespørgsler, der danner tabeller med det indhold, som jeg gerne vil have eksporteret. Og jeg har lavet en formular hvori man indtaster en dato, og trykker på en knap som så danner data. Men jeg mangler en makro der kan eksportere mine data.

De Access tabeller jeg har lavet indeholder flere projekter, men kan man ikke få den til at eksportere data for ét projekt af gangen og samtidig danne en excel fil i den filstruktur jeg har beskrevet ovenfor.

Jeg har lavet en test DB, hvis der er nogle som gerne vil have hands on for nemmere at kunne få et indtryk af mit problem.
Avatar billede mugs Novice
26. april 2007 - 14:52 #1
Du kan blot eksportere en forespørgsel der udvælger dine data i stedet for en tabel. Syntaksen for eksport er den samme for tabel / forespørgsel
Avatar billede sjoran Nybegynder
26. april 2007 - 15:08 #2
Jeg tror ikke jeg har formuleret mig godt nok. Jeg kan godt finde ud af at eksportere tabeller og forespørgsler med Access, dog ikke i VBA. Men problemet er at jeg gerne vil have noget VBA kode, der danner distincte excel filer for hvert projekt i mine forespørgsler/tabeller. Eller sagt på en anden måde den skal kunne danne en excel fil til et projekt hvis der er data på det i mine tabeller/forespørgsler.

Jeg opererer med ca 100 forskellige projekter hver måned, og der kommer hele tiden nye til og gamle falder fra. Så det kunne være fedt hvis man kunne lave en dynamisk kode der selv kunne finde ud af hvilke excel filer der hver måned skal dannes.
Avatar billede mugs Novice
26. april 2007 - 15:35 #3
Syntaksen er:

DoCmd.TransferSpreadsheet acExport, 8, "FORESPØRGSLENS NAVN", "DESTINATION", True, ""
Avatar billede fdata Forsker
26. april 2007 - 22:04 #4
Du kunne fremfinde alle relevante projekter og så lave en løkke, der løb dem igennem og trak de korrekte data ud af dine tabeller/forespørgsler.

En grovskitse (som skal tilrettes med dine forespørgselsnavne osv):

Sub ExporterProjekter()
  Const ExportQueryNavn = "Q_Export"
  Dim Qdf As QueryDef
  Dim TotalSQL As String
  Dim TotalRst As Recordset
  Dim ProjektSQL As String
  Dim FilNavn As String
  Dim Mappe As String
 
  Mappe = "c:\Projektopfølgning\" & Year(Date) & "\" & Year(Date) & "-" & Format(Month(Date), "00")
  On Error Resume Next
  MkDir ("c:\Projektopfølgning")
  MkDir ("c:\Projektopfølgning\" & Year(Date))
  MkDir Mappe
  On Error GoTo 0
 
  ' Find alle relevante projekter
  TotalSQL = "SELECT Q_Projekter.* FROM Q_Projekter WHERE Aktiv=True"
  Set TotalRst = CurrentDb.OpenRecordset(TotalSQL)
       
  Do
    ProjektSQL = "SELECT Q_Eksport.* FROM Q_Eksport WHERE ID=" & TotalRst.Fields("ID")
   
    ' Slet evt. gammel forespørgsel
    On Error Resume Next
    CurrentDb.QueryDefs.Delete ExportQueryNavn
    On Error GoTo 0
    ' Opret ny forespørgsel
    Set Qdf = CurrentDb.CreateQueryDef(ExportQueryNavn)
    With Qdf
      .SQL = ProjektSQL
      .Close
    End With
    Set Qdf = Nothing
   
    FilNavn = TotalRst.Fields("ProjektNavn")
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, ExportQueryNavn, Mappe & "\" & FilNavn, True
   
    TotalRst.MoveNext
  Loop Until TotalRst.EOF
  TotalRst.Close
 
  Set TotalRst = Nothing
End Sub

Ud fra ovenstående burde du i det mindste kunne danne dig en ide om principperne.
Avatar billede fdata Forsker
26. april 2007 - 22:05 #5
Ups...
FilNavn = TotalRst.Fields("ProjektNavn") & ".xls"
Avatar billede sjoran Nybegynder
30. april 2007 - 08:09 #6
Når jeg får tid vil jeg gå videre med den skitse du har trukket op fdata. Det ser nemlig ud til at være præcis det jeg leder efter.
Avatar billede fdata Forsker
30. april 2007 - 21:21 #7
Helt ok. Venter spændt ...
Avatar billede sjoran Nybegynder
12. juni 2008 - 10:42 #8
Jeg fik lavet en helt anden løsning. Men synes du skulle belønnes for dit arbejde alligevel:-)
Avatar billede fdata Forsker
13. juni 2008 - 12:02 #9
Det var godt nok en gammel sag  ;o)
Takker for point.
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