query exporteren naar excel

Status
Niet open voor verdere reacties.

pdater

Gebruiker
Lid geworden
10 mei 2010
Berichten
55
Beste forumleden
De bedoeling is dat ik een kruistabelquery exporteer naar een externe map.
Indien deze map niet bestaat moet ze eerst aangemaakt worden. (tot hier lukt het) maar blijkbaar slaag ik er niet om de query te exporteren (deze moet na de export ook direct geopend worden. Dit lijkt mij wel te lukken met een rapport (al zit in deze vba code niet de creatie van de map in , dus mss zit daar de fout??)
Dit is wat ik al geprobeerd heb maar geen van beiden werkt ( de export niet en de outputto ook niet , al gebruik ik deze laatste wel om mijn rapport te exporteren en dit opent dan direct (heeft mijn voorkeur)
heeft iemand een idee waar mijn fouten zitten?? (ben maar een leek in VBA)
Private Sub Knop34_Click()

Code:
Private Sub Knop34_Click()
 
 Dim sPad As String
 Dim strquery As String
 Dim strquery1 As String

strquery = "qryH_Niveaulezen2"
strquery1 = "qryH_Niveaulezen_Kruistabel3"
On Error Resume Next
    DoCmd.SetWarnings False
    DoCmd.DeleteObject acTable, "Niveaulezen"
    DoCmd.OpenQuery strquery, , acEdit
    sPad = "C:\Alle_Statistieken"
    
    If Dir(sPad, vbDirectory) = "" Then MkDir sPad
    ChDir (sPad)
    DoCmd.OutputTo acOutputQuery, "strquery1", acSpreadsheetTypeExcel9, "C:\Alle_statistieken\Niveaulezen3.xls", True, , , acExportQualityPrint
    'DoCmd.TransferSpreadsheet , acExport, acSpreadsheetTypeExcel9, "strquery1", "C:\Alle_statistieken\Niveaulezen3.xls"
    DoCmd.SetWarnings True

End Sub
dank voor de hulp,
Rik
 
Ik ben een beetje in de war door de code die je gebruikt, maar je zult er wel een reden voor hebben. Zo verwijder je de tabel "Niveaulezen" wat mij doet denken dat je die tabel opnieuw maakt met de resultaten uit je kruistabelquery. Maar dat doe je niet. Wat je wel probeert, is een (vermoed ik althans) niet-bestaande query te exporteren. Ik vermoed althans dat je geen query hebt die "strQuery1" heet. Je hebt daarentegen wèl weer een variabele met die naam strQuery1.
Dus ofwel je doet de export zo:
Code:
    DoCmd.OutputTo acOutputQuery, strQuery1, acSpreadsheetTypeExcel9, sPad & "\Niveaulezen3.xls", True
of zo:
Code:
    DoCmd.OutputTo acOutputQuery, "qryH_Niveaulezen_Kruistabel3", acSpreadsheetTypeExcel9, sPad & "\Niveaulezen3.xls", True
 
Michel,
Ik geef toe dat ik maar wat gok, door gebrek aan kennis van VBA, weet ik niet steeds welke stappen ik moet volgen.
In feite doe ik volgende handelingen:
1) ik delete de tijdelijke tabel Niveaulezen
2) ik maak een nieuwe tabel niveaulezen aan via de actiequery "qryH_Niveaulezen2" aangezien deze nogal gecompliceerd is (afhankelijk van de rechten van de gebruiker doe ik het op deze manier
3) ik exporteer een kruistabelquery als excelfile (voorheen deed ik dit via een macro en werkte wel perfect) probleem is dat niet iedereen de map c:\Alle_statistieken op hun pc staan hebben, vandaar dat ik het via VBA wil proberen.
Ik heb uw formules geprobeerd maar geen van beiden lijken de export (output te doen, want ik zie nooit de file in de map) wel denk ik dat het de stappen ervoor vastloopt , de map wordt wel gecreerd maar als ik deze map wil verwijderen dan kan dit pas als access is afgesloten, anders krijg ik de melding dat deze map in een ander programma is geopend. Dus ik zou het zeer kunnen apprecieren mocht je mij kunnen verder helpen.
groeten,
Rik
 
De ChDir heb je in ieder geval niet nodig, want je geeft in de export al aan waar het bestand naar toe moet. Probeer het eens zonder die regel. En heeft de exportregel op basis van de Variabele naam wel een waarde in de variabele?
 
Michel,

Ik geef de code nog eens mee, ik zie nu wel al dat hij niet blijft hangen op die map. (ik kan ze nu verwijderen , zonder probleem)
maar verder gebeurt er niets, enkel de map wordt gecreeerd. ik heb beide mogelijkheden eens geprobeerd zonder resultaat.
hier is nog eens de code (sterk ingekort)
Ik hoop dat je mij verder kunt helpen?
Alvast bedankt,
gr, Rik
Code:
Private Sub Knop34_Click()
 
 Dim sPad As String
 On Error Resume Next
    DoCmd.SetWarnings False
    DoCmd.DeleteObject acTable, "Niveaulezen"
    DoCmd.OpenQuery "qryH_Niveaulezen2", acViewNormal, acEdit
    sPad = "C:\Alle_Statistieken"
    If Dir(sPad, vbDirectory) = "" Then MkDir sPad
    DoCmd.OutputTo acOutputQuery, "qryH_Niveaulezen_Kruistabel3", acSpreadsheetTypeExcel9, sPad & "\Niveaulezen3.xls", True
    'DoCmd.TransferSpreadsheet , acExport, acSpreadsheetTypeExcel9, "qryH_Niveaulezen_Kruistabel3", "C:\Alle_statistieken\Niveaulezen3.xls"
    DoCmd.SetWarnings True

End Sub
 
Laten we eens een stapje terug gaan: wordt de tabel [NiveauLezen] wel goed aangemaakt? En doet de query [qryH_Niveaulezen_Kruistabel3] het wel?
 
Laten we eens een stapje terug gaan: wordt de tabel [NiveauLezen] wel goed aangemaakt? En doet de query [qryH_Niveaulezen_Kruistabel3] het wel?

De tabel wordt opgebouwd en de kruistabelquery doet het ook, ik had ook gehoopt dat het daar zou zitten, had dit zelf ook al van in het begin geprobeerd, maar ja daar zit de fout blijkbaar niet dus.
Zelfs met bril op vind ik de fout niet :-) wie wel?
groeten,
Rik
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan