Avatar billede petersen7913 Forsker
12. april 2016 - 14:03 Der er 9 kommentarer og
1 løsning

Sende en forespørgsel til Excel - hvordan?

Jeg er kommet så langt, at jeg kan tage en eksisterende forespørgsel og få den gemt som en excelfil.

Men jeg har egentlig brug for at kunne bygge min forespørgsel op dynamisk og så sende den afsted.

Det her fungerer med QTest (eksisterende forespørgsel):

DoCmd.OutputTo ObjectType:=acOutputQuery, ObjectName:="QTest", OutputFormat:=acFormatXLSX, Outputfile:="C:\test.xlsx"

Jeg ønsker noget a la dette:

qSelect = "SELECT ... FROM .... WHERE ...."

og så kan jeg kalde med ObjectName:=qSelect
Avatar billede terry Ekspert
12. april 2016 - 15:02 #1
Why not just use an existing query and alter SQL using something like this

Dim qd As QueryDef
Set qd = CurrentDb.QueryDefs("MyQuery")
qd.SQL = "SELECT Category FROM Categories
Avatar billede terry Ekspert
12. april 2016 - 15:03 #2
then use this query in your OutputTo ..
Avatar billede petersen7913 Forsker
12. april 2016 - 16:09 #3
Fordi jeg gerne vil kunne eksportere resultatet fra et søgebillede ;)
Avatar billede terry Ekspert
12. april 2016 - 16:26 #4
"Fordi jeg gerne vil kunne eksportere resultatet fra et søgebillede"

Cant you use my suggestion then?
Avatar billede petersen7913 Forsker
13. april 2016 - 08:40 #5
Jeg tror ikke jeg fik læst dit svar godt nok første gang ;)

Jeg har nu prøvet men får fejl i Set qd = ...
Fejlen er Elementet er ikke fundet i denne samling

Dim qd As QueryDef
Set qd = CurrentDb.QueryDefs("MyQuery")
qd.SQL = "select * from qJobMatCert where jobid = 16"
....   
DoCmd.OutputTo acOutputQuery, "MyQuery", acFormatXLSX, sFile
eller
DoCmd.OutputTo acOutputQuery, qd.SQL, acFormatXLSX, sFile

Og så er jeg i tvivl om jeg skal bruge "MyQuery" eller qd.SQL i OutputTo. Jeg synes at "MyQuery" virker mest rigtigt men jeg kan ikke teste det.
Avatar billede terry Ekspert
13. april 2016 - 08:45 #6
"Fejlen er Elementet er ikke fundet i denne samling"

MyQuery is just an example, you need to use the name of an existing query

This is actually changing the SQL in the query "MyQuery" (query must exist)

If you look at the query after running the code you should see it has changed.
So you first change the querys SQL and then you use the query in OutputTo.
Avatar billede petersen7913 Forsker
13. april 2016 - 09:07 #7
Hm ... som jeg forstår det:

Jeg tager en eksisterende Query, ændrer den for at kunne trække data ud og så en min eksistrende Query definitivt lavet om....

Det er jo ikke så smart når det er en Query som bruges ret meget i resten af databasen.

Så man kan IKKE (bare) hægte ekstra kriterier på en Query og så sende det afsted?
Avatar billede terry Ekspert
13. april 2016 - 09:24 #8
Jeg tager en eksisterende Query, ændrer den for at kunne trække data ud og så en min eksistrende Query definitivt lavet om....

In your original question you were after a method where you could change the SQL you wanted to send to Excel, or am I missing something?


You dont need to use a query which is used for other things. Just create a query for this purpose. You can also cxreate a query on the fly and then delete it if you dont want it afterwards.

https://msdn.microsoft.com/en-us/library/office/ff195966.aspx
Avatar billede petersen7913 Forsker
13. april 2016 - 10:14 #9
> You can also cxreate a query on the fly and then delete it if you dont want it afterwards.

Det bliver løsningen for mig :)

Mit udgangspunkt her er søgebilleder (takker igen for dem - de har gjort lykke hos brugerne) hvor jeg kun vil eksportere resultatet fra søgningen.

Tak for hjælpen (som sædvanligt) og læg et svar
Avatar billede terry Ekspert
13. april 2016 - 11:25 #10
Yo did notice in the link that its possible to create a TEMP query? No need to delete ...

Thanks for the positive feedback :-)
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