Select the product you need help with
Overføre data fra et ADO-postsett til Excel ved hjelp av automatiseringArtikkel-ID: 246335 - Vis produkter som denne artikkelen gjelder for. På denne sidenSammendrag Det er mulig å automatisere Microsoft Excel til å overføre innholdet i et ADO-postsett til et regneark i Excel. Fremgangsmåten avhenger av hvilken Excel-versjon som skal automatiseres. Excel 97, Excel 2000 og Excel 2002 har en CopyFromRecordset-metode som kan brukes til å overføre et postsett til et område. CopyFromRecordset i Excel 2000 og 2002 kan brukes til å kopiere DAO- og ADO-postsett. CopyFromRecordset-funksjonen i Excel 97 støtter imidlertid bare DAO-postsett. Hvis du vil overføre et ADO-postsett til Excel 97, kan du opprette en matrise fra postsettet og deretter sette innholdet i matrisen inn i et område. I denne artikkelen drøftes begge metodene. Eksempelkoden illustrerer hvordan du kan overføre ADO-postsett til Excel 97, Excel 2000, Excel 2002, Excel 2003 og Excel 2007. Mer informasjon Eksempelkoden nedenfor illustrerer hvordan du kopierer et ADO-postsett til et Microsoft Excel-regneark ved hjelp av automatisering fra Microsoft Visual Basic. Først kontrollerer koden hvilken Excel-versjon som finnes på maskinen. Hvis den finner Excel 2000 eller 2002, brukes CopyFrom Recordset-metoden, siden denne både er effektiv og krever lite kode. Hvis derimot Excel 97 eller tidligere versjoner er installert på maskinen, kopieres først postsettet til en matrise ved hjelp av ADO-postsettobjektets GetRows-metode. Matrisen transponeres deretter slik at postene er i den første dimensjonen (rader) og feltene er i den andre dimensjonen (kolonner). Deretter kopieres matrisen til et Excel-ark ved at den tilordnes til et celleområde. (Matrisen kopieres under ett i stedet for at prosessen må gjentas for hver celle i regnearket.) Kodeeksemplet er hentet fra eksempeldatabasen Northwind som inngår i Microsoft Office. Hvis du installerte Microsoft Office i standardmappen, finner du denne på følgende plassering: \Programfiler\Microsoft Office\Office\Samples\Northwind.mdb Hvis Northwind-databasen ligger i en annen mappe på datamaskinen, må du redigere banen til databasen i koden nedenfor. Hvis Northwind-databasen ikke er installert på systemet, kan du installere eksempeldatabasen ved hjelp av alternativet Legg til / fjern for installasjonsprogrammet for Microsoft Office. Obs! Northwind-databasen blir ikke installert når du installerer 2007 Microsoft Office. Du kan få tak i Northwind 2007 fra følgende Microsoft-webområde: http://office.microsoft.com/en-us/templates/TC012289971033.aspx
(http://office.microsoft.com/en-us/templates/TC012289971033.aspx)
Lage eksempler
CopyFromRecordset er den beste metoden med tanke på effektivitet og ytelse. Fordi Excel 97 bare støtter DAO-postsett med CopyFromRecordset, får du følgende feilmelding hvis du forsøker å sende et ADO-postsett til CopyFromRecordset med Excel 97: Run-time error 430: Class does not support Automation or does not support expected interface. Obs! Når du bruker CopyFromRecordset bør du være oppmerksom på at ADO- eller DAO-postsettet du bruker, ikke må inneholde OLE-objektfelt eller matrisedata som hierarkiske postsett. Bruker du en av disse felttypene i postsettet, mislykkes CopyFromRecordset-metoden, og du får følgende feilmelding: Run-time error -2147467259: Method CopyFromRecordset of object Range failed. Hvis Excel 97 er installert på maskinen, bruker du ADO-postsettets GetRows-metode til å kopiere postsettet til en matrise. Hvis du tilordner matrisen som returneres av GetRows-metoden, til et celleområde i regnearket, vises dataene bortover i kolonnene i stedet for nedover i radene. Hvis for eksempel postsettet består av to felt og ti rader, vises matrisen som to rader og ti kolonner. Du må derfor transponere matrisen ved hjelp av TransposeDim()-funksjonen før du tilordner matrisen til celleområdet. Når du tilordner en matrise til et celleområde, må du være oppmerksom på noen begrensninger: Følgende begrensninger gjelder når du tilordner en matrise til et Excel-områdeobjekt:
Run-time Error 13: Type Mismatch
Run-time Error 5: Invalid procedure call or argument Run-time Error 1004: Application defined or object defined error Referanser
Hvis du vil ha mer informasjon om begrensninger for sending av matriser til ulike Excel-versjoner, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
177991 Hvis du vil ha mer informasjon, kan du klikke artikkelnumrene nedenfor for å vise artiklene i Microsoft Knowledge Base:
(http://support.microsoft.com/kb/177991/
)
XL: Begrensninger for sending av matriser til Excel ved hjelp av automatisering (denne artikkelen kan være på engelsk)146406
(http://support.microsoft.com/kb/146406/NO/
)
XL: Hente en tabell fra Access til Excel ved hjelp av DAO (denne artikkelen kan være på engelsk)215965
(http://support.microsoft.com/kb/215965/
)
XL2000: 12:00:00 vises for datoer før 1900 (denne artikkelen kan være på engelsk)243394
(http://support.microsoft.com/kb/243394/
)
Bruke MFC til å kopiere DAO-postsett til Excel ved hjelp av automatisering (denne artikkelen kan være på engelsk)247412
(http://support.microsoft.com/kb/247412/
)
INFO: Metoder for overføring av data til Excel fra Visual Basic (denne artikkelen kan være på engelsk)EgenskaperArtikkel-ID: 246335 - Forrige gjennomgang: 23. november 2007 - Gjennomgang: 5.0 Informasjonen i denne artikkelen gjelder:
| Artikkeloversettelser
|


Tilbake til toppen








