Avatar billede -anders- Juniormester
12. oktober 2004 - 20:11 Der er 25 kommentarer og
1 løsning

Overføre resultat af filter/søgning til Excel

Hej Eksperter
Jeg har implemteret www.makeiteasy dynamiske filtrering/søgning i en database med stor glæde, kanon funktion så mange tak for den. Spørgsmålet er nu: kan det lade sig sig gøre ved klik på en knap at overføre resultatet af filtreringen/søgningen til excel?.

Lidt om db:
Jeg en form "frm10" på denne form er der diverse tekstbokse/combobokse, på formen er der så en underform "frm11" denne underform viser så resultatet når man har tastet/valgt diverse kriterier på "frm10" resultatet vises først når man klikker på en knap, dette virker perfekt. Underformens kildeobjekt er selve formen "frm11" som for data fra en forespørgsel "fs11". På "frm10" har jeg så en knap, når jeg så klikker på denne knap ønsker jeg så at overføre resultatet til Excel, kan dette overhovedet lade sig gøre?

Mange hilsner Anders,
12. oktober 2004 - 20:14 #1
Hej Anders,

Tak for den pæne omtale af min funktion :o)

Kan du ikke bare bruge menuen: Funktioner->Office links->Analyser med Excel?
Avatar billede -anders- Juniormester
12. oktober 2004 - 20:17 #2
Nææ, har prøvet, men resultatet vises jo i en subform, og officelinks overføre frm10, og ikke subform "frm11", som jo indeholder selve resulatet, jeg har forsøgt med at åbne selve formen "frm11" og få den til at "Nedarve" det filter der er aktivt i subformen "frm11", men det virker ikke
Avatar billede mugs Novice
12. oktober 2004 - 20:18 #3
Hvis de filtrerede poster ligger i en forespørgsel er det ikke noget problem. Du kan benytte handlingen docmd.transferspreadsheet.
12. oktober 2004 - 20:19 #4
Mugs->ja, men forespørgslen "kender" jo ikke filteret

Anders->jeg har lige prøvet selv og det virkede fint. Man skal vist bare klikke i subformen først og derefter på Office links
12. oktober 2004 - 20:20 #5
Sorry, Anders->mit eksempel er jo slet ikke en subform....vender lige tilbage :o)
Avatar billede -anders- Juniormester
12. oktober 2004 - 20:21 #6
Mugs> jo den kender jeg, men resulatet vises jo i subformen "frm11", og det er denne jeg gerne vil overføre til excel. resultet vises ikke forespørgslen "fs11" når jeg åbner denne
Avatar billede -anders- Juniormester
12. oktober 2004 - 20:22 #7
Thomas> ok rend nu ikke livet af dig :o)
Avatar billede mugs Novice
12. oktober 2004 - 20:22 #8
Ja - Jeg var bange for at det drejede sig om en subform.
Avatar billede -anders- Juniormester
12. oktober 2004 - 20:25 #9
:o)Det driller altid med disse subforms
12. oktober 2004 - 21:06 #10
Nå, jeg havde lige en datter, som havde mareridt :o(

Jeg kan ikke få den til at overføre direkte, så derfor må man gøre det på den træge måde.

Det kræver at subformen har en postkilde som enten er en tabel eller en gemt forespørgsel (altså ikke bare en SQL-sætning)

På en knap på hovedformularen kan du lægge denne kode:

    Dim db As Database
    Dim qdef As QueryDef
    Set db = CurrentDb
    Set qdef = db.CreateQueryDef("tmp", "Select * From [" & Me!DinFormular.Form.RecordSource & "] Where " & Me!DinFormular.Form.filter)
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tmp", "C:\tmp.xls", True


Metoden kræver reference til "Microsoft DAO 3.x Object Library"
12. oktober 2004 - 21:08 #11
Metoden er selvfølgelig ikke fejlsikret - den vil f.eks. fejle hvis du IKKE har filtreret på sunformen.
Avatar billede -anders- Juniormester
12. oktober 2004 - 21:12 #12
Okay, jeg tester den og vender tilbage hurtigts muligt, håber datteren er faldet godt i søvn :o)
Avatar billede mugs Novice
12. oktober 2004 - 21:12 #13
Og slut koden med:

DoCmd.DeleteObject acTable, "tmp"

Der er jo ikke længere brug for den. Man kan selvfølgelig også tømme den, så man ikke sender flere data over i eksisterende data, når man næste gang eksporterer.
12. oktober 2004 - 21:22 #14
filen vil bare blive overskrevet, men du har ret i, at man selvfølgelig kan slette tmp-forespørgslen :o)

jo tak - datteren sover sødt igen :o)
Avatar billede -anders- Juniormester
12. oktober 2004 - 21:25 #15
Hej igen, det virker perfekt også det med at slette "tmp", dog en lille ting: til trods for true i slutningen af koden, starter excel ikke op når export er udført, dette ville være fint, men alt andet virker perfekt :o)
12. oktober 2004 - 21:29 #16
nej, du kan ikke få Excel til at starte op med denne kode.
Men du kan evt bruge ShellExecute (som du f.eks kan finde her: http://www.makeiteasy.dk/eksempler/VBFunktioner.htm)

Eks:
Shellexecute "C:\tmp.xls", WIN_NORMAL
Avatar billede -anders- Juniormester
12. oktober 2004 - 21:35 #17
Hej igen, bingo så køre det, mange tak for hjælpen, velfortjente points på vej

>Mugs, også tak for dine indlæg, nat og sov godt :o)
Avatar billede -anders- Juniormester
12. oktober 2004 - 21:35 #18
>Thomas lægger du et svar
12. oktober 2004 - 21:36 #19
så pyt, da :o)

Godnat og tak :o)
Avatar billede -anders- Juniormester
12. oktober 2004 - 21:57 #20
Og hvorfor er denne funktion så fremragende at benytte:

For det første: Nem at implementere og tilpasse den aktuelle db.

Og ikke mindst: Kombinationen mellem fritekst i udvalgte felter og faktiske værdier fra feks. comboboxe, og forskellige datatyper. Samt et bevis på at velfungerende funktioner ikke behøver at fylde mange linjer kode. :o)
Avatar billede mugs Novice
12. oktober 2004 - 21:59 #21
Helt, helt enig. Er selv storforbruger af denne funktion.
12. oktober 2004 - 22:01 #22
Tak for de pæne ord :o)

I har ikke lyst til at blive sælgere i Makeiteasy.dk, vel?
Avatar billede mugs Novice
12. oktober 2004 - 22:02 #23
Er jeg så fyret som konsulent?
Avatar billede -anders- Juniormester
12. oktober 2004 - 22:04 #24
he he ja hvorfor ikke, ville i hvertfald aldrig tøve med at anbefale jer :o)
12. oktober 2004 - 22:05 #25
Mugs-> hmm, du fik jo aldrig jobbet (kan ikke lige huske hvorfor)

Anders-> det lyder godt :o)
Avatar billede mugs Novice
12. oktober 2004 - 22:42 #26
Thomas > Det var vist noget med at jeg (naturligvis ved en fejltagelse), kom til at sige at funktionen ikke kunne bruges til wildcard.
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