gefilterd formulier/query exporteren naar excel

Status
Niet open voor verdere reacties.

maomanna

Gebruiker
Lid geworden
20 feb 2014
Berichten
234
Hallo allen,

Ik heb een Doorlopend formulier met allerlei comboboxxes als filters.
Onder het formulier zit een query.

Nu wil ik na het filteren van het formulier, de gefilterde informatie/query exporteren naar excel, doormiddel van een knop op het formulier.
De macrofunctie die erin zit, gooit ook een hoop zooi mee. daarom ben ik opzoek naar een schonere oplossing hier voor.
 
Verklaar je nader alsjeblieft. Wat bedoel je precies met 'zooi'?
 
De cboboxxen, de namen daarvan exporteert hij ook. de cellen eronder zijn dan leeg.
Deze informatie zou ik graag niet mee willen exporteren.
Hij neemt wel het gefilterde mee (al dan niet in een rare volgorde, het laatste op het formulier komt als eerste in excel)
 
Kun je misschien de database even uploaden hier in een ZIP-bestand? Zo nodig eerst even vertrouwelijke informatie eruit halen of vervangen door iets onschuldigs.
 
mmm dat is wel lastig ivm een inlogdeel.
ik zal de query, form en tabellen even los maken
 
Misschien niet de meest elegante oplossing maar als je het formulier eerst naar de gegevensbladweergave laat gaan vóór het exporteren naar Excel dan gaat het wel goed. Zie bijlage waarin ik Macro1 heb aangemaakt en aan de knop in het formulier heb gehangen.

Hiervoor moest ik overigens wel eerst de eigenschappen 'pop up' en 'modaal' van het formulier allebei op 'Nee' zetten, anders is de gegevensbladweergave kennelijk niet mogelijk. Zoals al gezegd, het is niet de meest elegante oplossing. Octafish zal vast wel een betere weten ;)
 

Bijlagen

mmm helaas werkt het hier niet. Hij gaat niet naar gegevensweergave. Ook niet als pop up en modaal op nee staan.
In het door jou geuploade bestand, daarin werkt het wel, maar het werkbestand waar het uiteindelijk in moet werkt het niet.

Daar krijg ik foutnummer 2046.
 
Heb je Gegevensbladweergave Toestaan wel op 'Ja' gezet in de eigenschappen?
 
Waarom los je het echte probleem niet op? Is niet zo lastig, en een stuk betrouwbaarder dan workarounds :).
 
echte probleem? ermmm... wil je me duwen? als je wilt, de juiste richting.
ik weet even niet precies wat je bedoeld.
 
Je zegt dat je een hoop 'zooi' mee krijgt nu. Dat zou niet hoeven, een query moet je prima kunnen exporteren. Ik krijg al hoofdpijn van het lezen van de workarounds :).
 
De "zooi" krijg ik mee door het uitvoeren van een macro.
De macro zit in het formulier en exporteert dus het formulier en niet de gefilterde query.

Als de macro gericht wordt op de query met Me.filter zou dat het moeten zijn?!

Het draaien van een afdrukvoorbeeld is niet zo lastig:
Code:
Private Sub knp_rapport_Click()
DoCmd.OpenReport "RWnTotaal_Incompleet", A_PREVIEW, , Me.Filter
End Sub

Zoiets in VBA zou ook moeten kunnen toch?
Google gooit me plat met allerlei grote VBA's

iets als
Code:
Sub export_to_excel(myfile as string)
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "your query name", myfile
End Sub
bron
 
Vind je dat een grote VBA procedure? Want ik zou niet weten hoe ik deze kleiner kon schrijven.
 
Helaas werkt de code niet.

Of moet ik het net zo doen als met de filtercode?


-----------------------------------------
ben grotere tegen gekomen idd.
Bedoelde dingen zoals

Code:
Function Export_To_Excel()

Dim dbs As Database
Dim rst_WrkShtName
Dim WrkShtName As String
Dim qdfTemp As QueryDef

DoCmd.SetWarnings False

Set dbs = CurrentDb

'-- Use this query to find a field to be used as names for the worksheets
Set rst_WrkShtName = dbs.OpenRecordset("SELECT <Tb_Fieldname> FROM <Access_Tb> GROUP BY <Tb_Fieldname> ORDER BY <Tb_Fieldname> ASC;")

With rst_WrkShtName

.MoveFirst
Do While Not rst_WrkShtName.EOF
WrkShtName = (rst_WrkShtName("<Tbl_Fieldname>"))

With dbs

' Creates a query named as the current Tb_Fieldname, query produces results for each worksheet
' The worksheet is created with the same name as the Query
Set qdfTemp = .CreateQueryDef(WrkShtName, "SELECT * FROM <Access_Tb> WHERE <Tbl_Fieldname> = '" & WrkShtName & "';")

' Transfers this query to a spreadsheet named as WrkShtName in the same file
DoCmd.TransferSpreadsheet 1, 8, WrkShtName, "C:\temp\<Excel_Filename.xls>", True

' Deletes the query after exporting to excel
.QueryDefs.Delete WrkShtName

End With

.MoveNext
Loop

End With

End Function

 
Een simpele query exporteren is, zoals je al aangaf in je eerdere voorbeeld, niet meer dan één regel code. In jouw geval dit:
Code:
Private Sub Knop329_Click()
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "QOntbrekend_PP", CurrentProject.Path & "\QOntbrekend_PP.xls", True
End Sub
En dat werkt dus prima.
 
Jouw code exporteert inderdaad de query maar niet de filters op die query die je in het formulier kunt maken...
 
Dan moet je de query ook filteren.... Het gaat om de techniek, niet om de bron.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan