12. oktober 2004 - 20:11Der 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?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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
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
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"
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.
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)
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)
Thomas > Det var vist noget med at jeg (naturligvis ved en fejltagelse), kom til at sige at funktionen ikke kunne bruges til wildcard.
Synes godt om
Ny brugerNybegynder
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.