Avatar billede janriis Nybegynder
16. marts 2005 - 09:42 Der er 13 kommentarer og
1 løsning

Uddata fra forespørgsel gemt i Excel regneark

Hej

Jeg har en statistikdatabase i Access, som viser resultatet fra en forespørgsel i en rapport. Men jeg vil egentlig hellere have gemt resultatet i en excel fil, evt. med en dialogboks, hvor brugeren kan vælge hvor filen skal gemmes.

Kan det lade sig gøre ? og hvordan ?
Avatar billede jensen363 Forsker
16. marts 2005 - 09:45 #1
Du kan uden problemet eksportére resultatet fra en forespørgsel til et andet medie, eksempelvis excel
16. marts 2005 - 09:47 #2
docmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel9,"Din forespørgsel","C:din fil.xls",true

Hvis brugeren skal kunne browse sig frem til en fil, skal du bruge commondialog-kode, hvilket er lidt mere omstændigt
16. marts 2005 - 09:48 #3
Du finder commondialog-eksempler på min hjemmeside: http://www.makeiteasy.dk/eksempler/Downloads.htm

tag f.eks. den, som hedder "Åbn Fil-dialogboks og åbning af vilkårlig fil fra Access"
Avatar billede janriis Nybegynder
16. marts 2005 - 09:59 #4
Tak for hjælpen, det vil jeg lege lidt med,
16. marts 2005 - 10:00 #5
Selv tak :o)
Avatar billede janriis Nybegynder
16. marts 2005 - 10:12 #6
Ok, dette virker bare : docmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel9,"Din forespørgsel","C:din fil.xls",true

Brugeren indtaster en periode og trykker på knappen gem i fil, som så udfører ovenstående.

Men jeg kan ikke rigtigt greje, hvordan jeg skal få lagt commondialog ind, så brugeren kan bestemme navn og placering på filen
16. marts 2005 - 10:15 #7
du skal importere hele klassemodulet "CommonDialog" fra mit eksempel. Herefter lægger du denne kode ind i din egen:

    Dim dlg As New CommonDialog
    Dim NewPath as string
    dlg.filter = "Excel filer" & vbNullChar & "*.xls"" & vbNullChar & "Alle filer" & vbNullChar & "*.*" & vbNullChar
    dlg.DialogTitle = "Angiv placering af filen"
    dlg.Showsave
    NewPath = dlg.Filename
    If IsNull(NewPath) Or NewPath = "" Then
        Exit Function
    End If
   
    docmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel9,"Din forespørgsel",NewPath ,true
Avatar billede janriis Nybegynder
16. marts 2005 - 10:30 #8
Har jeg gjort, men æv. Jeg får en syntax fejl og nedenstående linie bliver fremhævet

    dlg.filter = "Excel filer" & vbNullChar & "*.xls"" & vbNullChar & "Alle filer" & vbNullChar & "*.*" & vbNullChar

Her er hele min kode:

Private Sub Gem_resultat_i_regneark_Click()
Dim dlg As New CommonDialog
    Dim NewPath As String
    dlg.filter = "Excel filer" & vbNullChar & "*.xls"" & vbNullChar & "Alle filer" & vbNullChar & "*.*" & vbNullChar
    dlg.DialogTitle = "Angiv placering af filen"
    dlg.ShowSave
    NewPath = dlg.Filename
    If IsNull(NewPath) Or NewPath = "" Then
        Exit Function
    End If




DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "query1", NewPath, True

End Sub
16. marts 2005 - 10:33 #9
Prøv denne:

dlg.Filter = dlg.AddFilterItem("", "Excel filer (*.xls)", "*.xls")
Avatar billede janriis Nybegynder
16. marts 2005 - 10:39 #10
Ok, ny fejl. Compile error: "Exit function not allowed in Sub or property"

Teksten Exit function er fremhævet i nedenstående kode:

Private Sub Gem_resultat_i_regneark_Click()
Dim dlg As New CommonDialog
    Dim NewPath As String
   
    dlg.filter = dlg.AddFilterItem("", "Excel filer (*.xls)", "*.xls")
    dlg.DialogTitle = "Angiv placering af filen"
    dlg.ShowSave
    NewPath = dlg.Filename
    If IsNull(NewPath) Or NewPath = "" Then
        Exit Function
    End If




DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "query1", NewPath, True

End Sub
16. marts 2005 - 10:40 #11
Erstat med: Exit sub

(da din procedure er en Sub i stedet for en Function)
Avatar billede janriis Nybegynder
16. marts 2005 - 10:52 #12
Jep og nu lykkedes det. Mange tusind tak for hjælpen. Genialt
16. marts 2005 - 10:53 #13
Anytime :o)
Avatar billede mugs Novice
16. marts 2005 - 11:11 #14
janriis > Nu er spørgsmålet jo afsluttet. Men jeg har gennem tiderne samlet lidt funktioner i dataudveksling mellem Access / Excel fra spørgsmål her på eksperten. Er du interesseret i den kan du blot lægge din e-mail, så sender jeg den iaften.
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