Select the product you need help with
Överföra data från en ADO-postuppsättning till Excel med automatiseringArtikel-id: 246335 - Visa produkter som artikeln gäller. På den här sidanSammanfattning Du kan överföra innehållet i en ADO-postuppsättning till ett Microsoft Excel-kalkylblad genom att automatisera Excel. Metoden beror på vilken version av Excel du automatiserar. Excel 97, Excel 2000 och Excel 2002 har en CopyFromRecordset-metod som kan användas för att överföra en postuppsättning till ett område. CopyFromRecordset i Excel 2000 och 2002 kan användas för att kopiera en DAO- eller ADO-postuppsättning. CopyFromRecordset i Excel 97 stöder emellertid endast DAO-postuppsättningar. Om du vill överföra en ADO-postuppsättning till Excel 97 kan du skapa en matris av postuppsättningen och sedan fylla ett område med innehållet i matrisen. I den här artikeln beskrivs båda metoderna. Kodexemplet visar hur du kan överföra en ADO-postuppsättning till Excel 97, Excel 2000, Excel 2002, Excel 2003 eller Excel 2007. Mer Information Av exemplet framgår hur du kopierar en ADO-postuppsättning till ett Microsoft Excel-kalkylblad med hjälp av automatisering från Microsoft Visual Basic. I koden kontrolleras först Excel-versionen. Om Excel 2000 eller 2002 identifieras används CopyFromRecordset-metoden, eftersom den är effektiv och kräver mindre kod. Om Excel 97 eller tidigare identifieras kopieras emellertid postuppsättningen först till en matris med hjälp av GetRows-metoden för ADO-postuppsättningsobjektet. Matrisen transponeras sedan så att poster är i den första dimensionen (i rader) och fält i den andra dimensionen (i kolumner). Sedan kopieras matrisen till ett Excel-kalkylblad genom att matrisen tilldelas till ett cellområde. (Matrisen kopieras i ett steg i stället för att varje cell i kalkylbladet gås igenom i en loop.) I kodexemplet används Northwind-exempeldatabasen som ingår i Microsoft Office. Om du valde standardmappen när du installerade Microsoft Office finns databasen här: \Program\Microsoft Office\Office\Samples\Northwind.mdb Om Northwind-databasen finns i en annan mapp på datorn måste du redigera sökvägen till den i koden nedan. Om Northwind-databasen inte finns på datorn kan du använda alternativet Lägg till/ta bort för Microsoft Office-installationen för att installera exempeldatabaserna. Obs! Northwind-databasen installeras inte tillsammans med Microsoft Office 2007, men du kan hämta Northwind 2007 på följande Microsoft-webbplats: http://office.microsoft.com/sv-se/templates/TC012289971053.aspx
(http://office.microsoft.com/sv-se/templates/TC012289971053.aspx)
Skapa exempel
CopyFromRecordset ger bäst effektivitet och prestanda. Eftersom Excel 97 bara stöder DAO-postuppsättningar med CopyFromRecordset, visas följande felmeddelande om du försöker överföra en ADO-postuppsättning till CopyFromRecordset med Excel 97: Körfel nr 430: Klassen stöder inte Automation eller förväntat gränssnitt. Obs! När du använder CopyFromRecordset bör du vara medveten om att ADO- eller DAO-postuppsättningen du använder inte kan innehålla OLE-objektfält eller matrisdata som hierarkiska postuppsättningar. Om du har med fält av dessa typer i en postuppsättning fungerar inte CopyFromRecordset-metoden, och följande felmeddelande visas: Körfel nr -2147467259: Metoden CopyFromRecordset i objektet Range misslyckades. Om Excel 97 identifieras ska du använda GetRows-metoden för ADO-postuppsättningen för att kopiera postuppsättningen till en matris. Om du tilldelar matrisen som returneras av GetRows till ett cellområde i kalkylbladet går data tvärs över kolumnerna i stället för nedåt raderna. Om postuppsättningen exempelvis har två fält och tio rader visas matrisen som två rader och tio kolumner. Därför måste du transponera matrisen med hjälp av TransposeDim()-funktionen innan du tilldelar matrisen till cellområdet. När du tilldelar en matris till ett cellområde finns det några begränsningar du måste tänka på: Följande begränsningar gäller när du tilldelar en matris till ett Excel Range-objekt:
Körfel 13: Typblandningsfel
Körfel 5: Ogiltigt proceduranrop eller argument Körfel 1004: Program- eller objektdefinierat fel Referenser
Om du vill veta mer om begränsningar för överföring av matriser till olika versioner av Excel klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
177991 Om du vill veta mer klickar du på följande artikelnummer och läser artiklarna i Microsoft Knowledge Base:
(http://support.microsoft.com/kb/177991/
)
XL: Begränsningar för överföring av matriser till Excel med hjälp av Automation (Länken kan leda till en webbplats som är helt eller delvis på engelska)146406
(http://support.microsoft.com/kb/146406/SV/
)
XL: Hämta en tabell från Access till Excel med hjälp av DAO (Länken kan leda till en webbplats som är helt eller delvis på engelska)215965
(http://support.microsoft.com/kb/215965/
)
XL2000: 12:00:00 visas för tidigare datum än 1900 (Länken kan leda till en webbplats som är helt eller delvis på engelska)243394
(http://support.microsoft.com/kb/243394/
)
Använda MFC för att kopiera en DAO-postuppsättning till Excel med automation (Länken kan leda till en webbplats som är helt eller delvis på engelska)247412
(http://support.microsoft.com/kb/247412/
)
INFO: Metoder för överföring av data till Excel från Visual Basic (Länken kan leda till en webbplats som är helt eller delvis på engelska)EgenskaperArtikel-id: 246335 - Senaste granskning: den 23 november 2007 - Revision: 5.0 Informationen i denna artikel gäller:
| Artikelöversättning
|


Tillbaka till början








