Avatar billede sigyn Seniormester
25. februar 2019 - 13:34 Der er 4 kommentarer og
1 løsning

Problemer med eksport fra Access til Excel

Jeg har en knap med følgende kode, den henter fra tre forskellige forespørgsler, af-hængigt af valget i en komboboks.

Private Sub cmdGemSomExcel_Click()
On Error GoTo Err_cmdGemSomExcel_Click

    Dim stDocName As String

    stDocName = Me.cboExcelRapport
    'DoCmd.OutputTo acReport, stDocName
    DoCmd.OutputTo acQuery, stDocName, "MicrosoftExcel(*.xls)", "q:\MinSti\TilExcel\ " & Me.cboExcelRapport.Column(1) & " " & Date & ".xls", True, ""

Exit_cmdGemSomExcel_Click:
    Exit Sub

Err_cmdGemSomExcel_Click:
    MsgBox Err.Description
    Resume Exit_cmdGemSomExcel_Click
   
End Sub


To af mine forespørgler giver ikke nogen problemer, men den tredje fejler, og kommer med denne melding ”Der er for mange rækker baseret på den begrænsning, der er de-fineret af outputformatet eller af Microsoft Access.
Der er ca. 22.000 rækker. Og går jeg direkte ind i forespørgslen og laver en eksport derfra, er der ingen problemer.
Jeg har prøvet at ændre *xls til *xlsx, det hjalp ikke
25. februar 2019 - 13:49 #1
Prøv at bruge TransferSpreadsheet i stedet
Avatar billede Jørgen Kirkegaard Professor
25. februar 2019 - 23:06 #2
Og hvis det ikke virker: Der er åbenbart en begrænsning, som du må leve med. En høkerløsning kunne være at lade dit query oprette en tabel med det indhold, som skal eksporteres, og så eksportere denne i stedet og efterfølgende slette. Bare et hug fra hoften. Jeg går ud fra, at du jævnligt komprimerer din database? Jeg har sat Acces til at gøre det, hvergang den afsluttes.
Avatar billede sigyn Seniormester
27. februar 2019 - 11:33 #3
TransfrerSpreadsheet, hvor i koden?

Og, hvorfor skulle den kunne eksportere fra en tabel, når den ikke kan fra queryen? er det fordi der ligger for meget "bagved" i en query?
Og stadigvæk, hvis jeg vælger at eksportere med "knapperne i båndet", så kan den jo godt, det er kun makroen der ikke virker
27. februar 2019 - 12:06 #4
Prøv at erstatte

  DoCmd.OutputTo acQuery, stDocName, "MicrosoftExcel(*.xls)", "q:\MinSti\TilExcel\ " & Me.cboExcelRapport.Column(1) & " " & Date & ".xls", True, ""

Med

  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, stDocName, "q:\MinSti\TilExcel\ " & Me.cboExcelRapport.Column(1) & " " & Date & ".xls"

Et gæt kunne være at OutputTo bruger clipboard i processen og dermed introducerer begrænsninger.

https://answers.microsoft.com/en-us/msoffice/forum/all/cant-export-more-than-65000-rows-from-access-2013/08674013-20ec-4604-a88b-280c82094bce
(mange tilsvarende derude...)
Avatar billede sigyn Seniormester
27. februar 2019 - 13:23 #5
Tusind tak, det virkede.
Men, jeg er jo ikke oppe i nærheden af de 65.000 rækker, kun knap 22.000. Det var faktisk det første jeg tjekkede, da den oprindelige database er lavet for mange officepakke-verisioner siden, og jeg godt var klar over, at der kunne være en "nedarvet" begrænsning der
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

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