Použití ADO s Excel Data z jazyka nebo VBA

Překlady článku Překlady článku
ID článku: 257819 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje použití datových objektů ActiveX (ADO) s tabulky aplikace Microsoft Excel jako zdroj dat. Článku také zvýrazní syntaxe problémy a omezení specifických pro Excel. Tento článek se nezabývá OLAP nebo kontingenčním technologií nebo dalších specializovaných používá aplikace Excel data.

Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
303814Použití ADOX s Excel Data z jazyka nebo VBA

Další informace

Úvod

Řádky a sloupce tabulky Microsoft Excel úzce vypadat řádků a sloupců tabulky databáze. Dokud uživatelé mějte, uzavřený není systém pro správu relačních databází a rozpoznat omezení tato používá tento fakt, často smysl využívat výhod Excel a jejích nástrojů k ukládání a analyzovat data.

Microsoft ActiveX Data Objects umožňuje sešitu aplikace Excel považovala, jako kdyby byla databáze. Tento článek popisuje, jak dosáhnout v následujících částech: Poznámka: Tato testování pro tohoto článku byla vedena s Microsoft Data Access Components (MDAC) 2.5 na systém Microsoft Windows 2000 Visual Basic 6.0 Service Pack 3 a Excel 2000. Tento článek není může potvrdit nebo diskutovat rozdíly v chování mohou uživatelé sledovat s různými verzemi MDAC, Microsoft Windows, jazyka nebo Excel.

Připojit Excel s ADO

ADO můžete připojit k souboru dat aplikace Excel pomocí jedné z dvou OLE DB Providers součástí MDAC:
  • Zprostředkovatel OLE DB Microsoft Jet - nebo -

  • Microsoft OLE DB Provider for ODBC Drivers

Použití zprostředkovatele Microsoft Jet OLE DB

Zprostředkovatele Jet vyžaduje pouze dva kusy informace k připojení zdroje dat aplikace Excel: cestu včetně názvu souboru a Excel verze souboru.

Použití připojovací řetězec zprostředkovatele Jet
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
	.Provider = "Microsoft.Jet.OLEDB.4.0"
	.ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" & _
"Extended Properties=Excel 8.0;"
	.Open
End With
				
Verze zprostředkovatele: je nutné použít Jet 4.0 Provider; Jet 3.51 Provider nepodporuje ovladače Jet ISAM. Pokud zadáte Jet 3.51 Provider v době spuštění zobrazí následující chybová zpráva:
Nelze najít instalovatelnou metodu ISAM.
Excel verze: zadejte Excel 5.0 pro sešit Excel 95 (verze 7.0 Excel) a Excel 8.0 pro aplikaci Excel 97, Excel 2000 nebo Excel 2002 (XP) sešit (verze 8.0, 9.0 nebo 10.0 Excel).

Pomocí vlastnosti Data Link dialogové zprostředkovatele Jet

Pokud použijte ADO Data Control nebo prostředí dat v aplikaci je zobrazí dialogové okno Vlastnosti Data Link shromažďovat nastavení nezbytné připojení.
  1. Na kartě Zprostředkovatel vybrat zprostředkovatele Jet 4.0; Jet 3.51 Provider nepodporuje ovladače Jet ISAM. Pokud zadáte Jet 3.51 Provider, v době spuštění obdržíte následující chybová zpráva:
    Nelze najít instalovatelnou metodu ISAM.
  2. Na kartě připojení vyhledejte soubor sešitu. Položky "IDENTIFIKAČNÍ" a "Heslo" Ignorovat, protože tyto nevztahují Excel připojení. (Nelze otevřít soubor chráněný heslem Excel jako zdroj dat. Další informace nalezete v tomto tématu v tomto článku.)
  3. Na kartě všeRozšířené vlastnosti vyberte v seznamu a klepněte na tlačítko Upravit hodnotu. Zadejte Excel 8.0; oddělení od všechny ostatní existující položky středníkem (;). Pokud vynecháte tento krok, obdržíte chybovou zprávu při testování připojení, protože zprostředkovatele Jet očekává databáze Microsoft Access, pokud neurčíte jinak.
  4. Vraťte se na kartu připojení a klepněte na možnost Testovat připojení. Poznámka: zprávou zobrazí informovat, že proces proběhl úspěšně.
Další nastavení připojení zprostředkovatele Jet

Záhlaví sloupců: ve výchozím nastavení předpokládá, že první řádek zdroje dat aplikace Excel obsahuje záhlaví sloupců, které lze použít jako názvy polí. Pokud není případ, musí zapnout toto nastavení vypnete nebo první řádek dat "zmizí" použít jako názvy polí. To se provádí přidáním nepovinný HDR = nastavení Rozšířené vlastnosti připojovací řetězec. Výchozí nemusí být zadán, je HDR = yes. Pokud máte záhlaví sloupců, je třeba zadat HDR = No; zprostředkovatele názvy polí F1, F2, atd. Protože řetězec Extended Properties nyní obsahuje více hodnot, musí být uzavřen v uvozovkách samotný, plus další pár dvojitých uvozovek sdělit jazyka považovat první sada nabídek literálové hodnoty jako v následujícím příkladu (kde nadbytečné mezery byly přidány pro vizuální jasnost).
.ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" & _
"Extended Properties=" " Excel 8.0; HDR=No;" " "
				

Použití zprostředkovatele Microsoft OLE DB pro ovladače ODBC

Zprostředkovatel pro ovladače (které tento článek odkazuje jako zprostředkovatel"ODBC" pro jeví z stručnost) také vyžaduje k připojení zdroje dat aplikace Excel pouze dvě (2) kusů informace: název ovladače a sešit cestu a název souboru.

Důležité: připojení ODBC aplikace do aplikace Excel je ve výchozím nastavení jen pro čtení. Vaše ADO Recordset LockType nastavení vlastnosti přepsat není toto nastavení na úrovni připojení. ReadOnly musíte nastavit na hodnotu FALSE v připojovací řetězec nebo konfiguraci DSN Pokud chcete upravit data. V opačném případě se zobrazí následující chybová zpráva:
Operace musí používat aktualizovatelný dotaz.
Použití menší DSN připojovací řetězec ODBC zprostředkovatele
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
	.Provider = "MSDASQL"
	.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=C:\MyFolder\MyWorkbook.xls; ReadOnly=False;"
	.Open
End With
				
Použití připojovací řetězec s DSN ODBC zprostředkovatele
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
	.Provider = "MSDASQL"
	.ConnectionString = "DSN=MyExcelDSN;"
	.Open
End With
				
zprostředkovatele ODBC pomocí dialogového okna Vlastnosti Data Link

Pokud použijte ADO Data Control nebo prostředí dat v aplikaci je zobrazí dialogové okno Vlastnosti Data Link shromažďovat nastavení nezbytné připojení.
  1. Na kartě Zprostředkovatel vyberte Microsoft OLE DB Provider for ODBC Drivers.
  2. Na kartě připojení vyberte existující DSN, který chcete použít nebo zvolte pomocí připojovacího řetězce. Standardní dialogové okno Konfigurace DSN to vyvolá Shromážděte nastavení nezbytné připojení. Nezapomeňte zrušit výběr výchozí nastavení jen pro čtení v případě potřeby, jak bylo uvedeno dříve.
  3. Vraťte se na kartu připojení a klepněte na možnost Testovat připojení. Poznámka: zprávou zobrazí informovat, že proces proběhl úspěšně.
Další nastavení připojení ODBC zprostředkovatele

Záhlaví sloupců: ve výchozím nastavení předpokládá, že první řádek zdroje dat aplikace Excel obsahuje záhlaví sloupců, které lze použít jako názvy polí. Pokud není případ, musí zapnout toto nastavení vypnete nebo první řádek dat "zmizí" použít jako názvy polí. To se provádí přidáním nepovinný FirstRowHasNames = nastavení připojovací řetězec. Výchozí nemusí být zadán, je FirstRowHasNames = 1, kde 1 = TRUE. Pokud máte záhlaví sloupců, je třeba zadat FirstRowHasNames = 0, kde 0 = FALSE; ovladač názvy polí F1, F2 a tak dále. Tato možnost není k dispozici v dialogovém okně Konfigurace DSN.

Však kvůli chybu v ovladači ODBC určení FirstRowHasNames aktuálně nastavení žádný účinek. Jinými slovy, Excel ODBC ovladač (MDAC 2.1 a vyššími) vždy zpracuje první řádek zadaný zdroj dat jako názvy polí. Pro další informationon Hlavička sloupce bug, klepněte na článek číslo článku databáze Microsoft Knowledge Base:
288343Chyba: Excel ODBC Driver ignoruje FirstRowHasNames nebo nastavení záhlaví
Prověřovaných řádků: Excel neposkytuje ADO s schématu podrobné informace o datech obsahuje, jako by relační databáze. Ovladač musí tedy skenovat prostřednictvím alespoň několik řádků existující data do proveďte kvalifikované odhad na typ dat jednotlivých sloupců. Výchozí nastavení pro "Řádky Scan" je osm (8) řádků. Zadejte celočíselnou hodnotu z jednu (1) k šestnáct (16) řádky nebo můžete určit nula (0) ke skenování všechny existující řádky. To se provádí přidáním nepovinný MaxScanRows = nastavení připojovací řetězec nebo změnou nastavení řádků prověřovaných v dialogovém okně Konfigurace DSN.

Však kvůli chybu v ovladači ODBC určení řádky Scan (MaxScanRows) aktuálně nastavení žádný účinek. Jinými slovy ovladač Excel ODBC (MDAC 2.1 a vyššími) vždy kontroluje prvních 8 řádků v zadaný zdroj dat k určení datový typ každého sloupce.

Další informace o řádky skener chyba včetně jednoduché řešení klepněte na článek číslo článku databáze Microsoft Knowledge Base:
189897Xl97: Článek 255 znaky s ovladačem ODBC Excel Data
Další nastavení: Jestliže sestavit připojovací řetězec pomocí dialogového okna Vlastnosti Data Link všimnout některé další Rozšířené vlastnosti nastavení přidán řetězec připojení, které nejsou nezbytně nutné, jako například:
... DefaultDir=C:\WorkbookPath;DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;PageTimeout=5;
				
"Sekvence kompletování" chybová zpráva v aplikaci Visual Basic Editor

V návrhovém prostředí jazyka s určité verze součástí MDAC může zobrazit váš program připojí zdroje dat aplikace Excel v době návrhu čas zprávy první následující chyba:
Vybrané pořadí kompletování operační systém nepodporuje.
Tato zpráva se zobrazí pouze v IDE a nezobrazí se v kompilované verzi programu. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
246167PRB: Kompletování sekvence error opening ADODB Recordset první čas před Excel XLS

Důležité informace, použít oba zprostředkovatelé OLE DB

Upozornění o různými typy dat

Jak bylo uvedeno dříve, ADO musí odhad typ dat pro každý sloupec v listu aplikace Excel nebo oblast. (Toto není ovlivněn nastavení formátování buňky Excel.) Vážné potíže mohou vzniknout, pokud máte smíšené textové hodnoty ve stejném sloupci číselné hodnoty. Jet a zprostředkovatele ODBC vrátit data většinu zadejte ale vrátí hodnoty NULL pro typ dat menšinového (prázdné). Pokud jsou dva typy rovnoměrně smíšené ve sloupci, zvolí zprostředkovatele numerické přes text.

Například:
  • Vaše osm (8) naskenovaných řádků Pokud sloupec obsahuje číselné hodnoty pět (5) a tři (3) textové hodnoty, zprostředkovatel vrátí, pět (5) čísla a hodnoty null tři (3).
  • Vaše osm (8) naskenovaných řádků Pokud sloupec obsahuje tři (3) číselné hodnoty a pěti (5) textové hodnoty, zprostředkovatel vrátí, hodnoty null tři (3) a textové hodnoty 5 (5).
  • Vaše osm (8) naskenovaných řádků Pokud sloupec obsahuje čtyři (4) číselné hodnoty a čtyři (4) textové hodnoty, zprostředkovatel vrátí, čtyři (4) čísla a hodnoty null čtyři (4).
Výsledkem je Pokud vaše sloupec obsahuje kombinované hodnoty, pouze recourse je uložení číselných hodnot ve sloupci jako text a převést zpět na čísla pomocí funkce Visual Basic VAL nebo ekvivalent podle potřeby v klientské aplikaci.

Chcete-li vyřešit tento problém pro data pouze pro čtení, povolit Režim Import pomocí nastavení „ IMEX = 1 v části Rozšířené vlastnosti řetězce připojení. To vynucuje ImportMixedTypes = text nastavení registru. Uvědomte si však, že aktualizace mohou poskytovat neočekávané výsledky v tomto režimu. Další informace o tomto nastavení získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
194124PRB: Vrácená jako NULL použití DAO OpenRecordset hodnoty Excel
Nelze otevřít sešit Protected heslo

Pokud sešit aplikace Excel chráněn heslem, nemůžete i zadáním správného hesla s nastavení připojení, pokud již není otevřen v aplikaci Microsoft Excel soubor sešitu otevřít pro přístup k datům. Pokud se pokusíte, zobrazí se následující chybová zpráva:
Dešifrování souboru.
Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
211378XL2000: Chyba "Může nelze dešifrovat soubor" s heslem chráněné soubor

Načíst a úpravě dat Excel s ADO

Tato část popisuje dva aspekty práci s vaší aplikací Excel dat:
  • Jak vybrat data - a -

  • Jak změnit data

Jak vybrat data

Vyberte data několika způsoby. Můžete:

  • Vyberte data aplikace Excel s kódem.
  • Vyberte data aplikace Excel s ovládací prvek dat ADO.
  • Vyberte data aplikace Excel s dat prostředí příkazů.

Vyberte Data Excel s kódem

Data aplikace Excel může být obsažen v sešitu v jednom z následujících:

  • Celý list.
  • Pojmenovanou oblast buněk na listu.
  • Nepojmenovaný oblast buněk na listu.
Určit listu

Určit list jako váš zdroj použít název sešitu následovaný znakem dolaru a uzavřeny v hranatých závorkách. Například:
	strQuery = "SELECT * FROM [Sheet1$]"
				
, můžete také vymezují název listu s znak šikmý jednoduchou uvozovku (') nalezen klávesnice pod tilda (~). Například:
	strQuery = "SELECT * FROM `Sheet1$`"
				
Microsoft upřednostňuje hranaté závorky jsou postavení konvence pro názvy objektů problematické databáze.

Pokud vynecháte oba znak dolaru a závorky nebo právě dolaru, zobrazí se následující chybová zpráva:
... databázový stroj Jet nelze najít zadaný objekt
Pokud použijete znak dolaru, ale vynechat závorky, uvidíte následující chybová zpráva:
Chyba syntaxe v klauzuli FROM.
Pokud se pokusíte použít běžná jednoduchých uvozovkách, zobrazí se následující chybová zpráva:
Chyba syntaxe v dotazu. Klauzule dotazu neúplné.
Určete oblast pojmenovaných

Zadejte pojmenovanou oblast buněk jako váš zdroj jednoduše použít definovaný název. Například:
	strQuery = "SELECT * FROM MyRange"
				
zadat nepojmenovaný rozsah

Zadat nepojmenovaný oblast buněk jako váš zdroj přidávací standardního zápisu aplikace Excel řádková či sloupcová konec název listu v hranatých závorkách. Například:
	strQuery = "SELECT * FROM [Sheet1$A1:B10]"
				
upozornění o určování listů: Zprostředkovatel předpokládá tabulky dat začíná horní - většina, doleva - většina, neprázdné buňce na zadaný listu. Jinými slovy tabulky dat může začít v řádku 3 C sloupec bez potíží. Však nelze, například zadat nadpis worksheeet nad a doleva data v buňce A1.

Upozornění o určování rozsahů: Při určit list jako váš zdroj zprostředkovatele přidá nové záznamy pod existující záznamy listu, jako umožňuje místa. Při zadání rozsahu (pojmenované nebo nepojmenované) Jet také přidá nové záznamy pod existující záznamy v rozsahu jako umožňuje místa. Však Pokud ZnovuSpustitDotaz na původní oblast výsledné sady záznamů nezahrnuje nově přidané záznamy mimo rozsah.

S verzí předcházejících MDAC 2.5 při zadání pojmenovanou oblast nelze přidat nové záznamy mimo definované omezení rozsahu nebo zobrazí následující chybová zpráva:
Nelze rozbalit pojmenovanou oblast.

Vyberte Data Excel s řízením dat ADO

Po nastavení připojení zadat pro zdroje dat aplikace Excel na kartě Obecné v dialogovém okně ADODC Vlastnosti, klepněte na kartu zdroj záznamů. Pokud zvolíte CommandType adCmdText, můžete zadat SELECT dotazu v dialogovém okně Příkaz Text s syntaxe popsané dříve. Pokud zvolíte CommandType adCmdTable a pomocí zprostředkovatele Jet, rozevírací seznam zobrazí pojmenované oblasti a listu názvy, které jsou k dispozici ve vybraném sešitu s pojmenovaných oblastí, které jsou uvedeny jako první.

Toto dialogové okno správně připojí znak dolaru listu názvy, ale nepřidá nezbytné hranatých závorek. Výsledkem je Pokud jednoduše vybrat název listu a klepněte na tlačítko OK, obdržíte následující chybová zpráva později:
Chyba syntaxe v klauzuli FROM.
Hranaté závorky kolem názvu listu je nutné přidat ručně. (Toto pole se seznamem neumožňuje úpravy.) Pokud používáte zprostředkovatele ODBC naleznete v rozevíracím seznamu uvedeny pouze pojmenované oblasti. Můžete však ručně zadat název sešitu s příslušnou oddělovače.

Vyberte Data Excel s příkazy prostředí dat

Po nastavení prostředí datové připojení pro aplikace Excel data zdroje, vytvořte nový objekt Command. Pokud zvolíte Zdrojová DataPříkaz SQL, můžete zadat dotaz v textovém poli pomocí syntaxe popsané dříve. Pokud zvolíte Zdrojová DataDatabázový objekt, vyberte tabulku v první rozevírací seznam a pomocí zprostředkovatele Jet, zobrazí rozevírací seznam k dispozici v sešitu vybraného listu názvy a pojmenované oblasti s pojmenovaných oblastí, které jsou uvedeny jako první. (Pokud zvolíte název listu v tomto umístění, nepotřebujete ručně přidat hranaté závorky kolem názvu listu proveďte pro řízení dat ADO.) Pokud používáte zprostředkovatele ODBC naleznete v rozevíracím seznamu uvedeny pouze pojmenované oblasti. Můžete však ručně zadat název sešitu.

Jak změnit Excel Data: upravit, přidat a odstranit

Upravit

Můžete upravit dat s normálním metod ADO. Pole Recordset, které odpovídají buněk listu obsahující Excel vzorce aplikace Excel (začínající "=") jsou jen pro čtení a nelze upravovat. Nezapomeňte, že připojení ODBC k Excel je jen pro čtení ve výchozím nastavení, pokud neurčíte jinak v nastavení připojení. Viz výše v části Použití zprostředkovatele Microsoft OLE DB pro ovladače ODBC.

Přidat

Můžete přidat záznamy zdroj Excel umožňuje místa. Však Pokud přidávat nové záznamy mimo oblast, která původně zadána tyto záznamy nejsou viditelné, pokud ZnovuSpustitDotaz na původní specifikace rozsah. Viz výše v části "upozornění o určování rozsahů."

Za určitých okolností při použití metody aktualizace a metodu AddNew objektu ADO Recordset do tabulky aplikace Excel vložit nové řádky dat ADO může vložit hodnoty dat do nesprávné sloupce v aplikaci Excel. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
314763Oprava: ADO vloží data do nesprávné sloupce v aplikaci Excel
Odstranit

Omezená jsou více v odstranění dat aplikace Excel než data z relačních dat zdroje. V relační databázi "řádek" má žádný význam nebo existence odlišuje od "záznam"; v listu aplikace Excel není true. Odstraňte hodnoty v polích (buňky). Však nelze:
  1. Odstranit celý záznam současně nebo zobrazí následující chybová zpráva:
    Odstranění dat v propojené tabulce není podporována tato ISAM.
    Záznam můžete odstranit pouze v vyprázdnění mimo obsah každé jednotlivé pole.
  2. Odstraňte hodnotu v buňce obsahující vzorce aplikace Excel nebo zobrazí následující chybová zpráva:
    Operace není v tomto kontextu povolena.
  3. Nelze odstranit prázdné tabulky řádky, ve kterém odstraněná data byla umístěna a vaše záznamů budou i nadále zobrazovat prázdné záznamy odpovídající tyto prázdné řádky.
Upozornění o úpravě dat aplikace Excel s ADO: Při vložení textových dat do aplikace Excel s ADO je před textová hodnota s jednoduchou uvozovku. Později v práci s nová data to může způsobit problémy.

Načíst struktura zdroje dat (Metadata) z aplikace Excel

S ADO můžete načíst data o struktura zdroje dat Excel (tabulek a polí). Výsledky lišit mírně mezi dva OLE DB Providers, přestože obě vrátit alespoň stejné malý počet užitečné polí informace. Tato metadata mohou být načteny s metodou OpenSchema objektu ADO připojení, které vrátí objekt ADO Recordset. Výkonnější rozšíření objekty Microsoft ActiveX Data můžete také použít pro knihovnu Data Definition Language a Security (ADOX) pro tento účel. Ze zdroje dat aplikace Excel však kde "tabulka" je list nebo pojmenovanou oblast a jednu omezený počet obecný datové typy je "pole" Tento dodatečný není užitečné.

Informační tabulka dotazu

K dispozici v relační databázi různých objektů (tabulek, zobrazení, uložené procedury a tak dále), zpřístupní pouze ekvivalenty tabulky, skládající se z listů a pojmenovaných oblastí v sešitu určené definované zdroje dat aplikace Excel. Pojmenované oblasti jsou považovány za "Tabulky" a listy jsou považovány za "Systémové tabulky" a je mnohem informace užitečné tabulky můžete načíst mimo tuto vlastnost "table_type". Vyžádání seznamu dostupných tabulek v sešitu s následujícím kódem:
Set rs = cn.OpenSchema(adSchemaTables)
				
the zprostředkovatele Jet vrací sady záznamů s devět (9) pole, které jej naplní pouze čtyři (4):

  • TABLE_NAME
  • table_type ("Tabulka" nebo "System Table")
  • date_created
  • date_modified
Datum dvě pole pro danou tabulku vždy zobrazit stejnou hodnotu se zdá být "datum poslední změny." Jinými slovy "date_created" není spolehlivé.

Zprostředkovatel ODBC také vrací sady záznamů s devět (9) pole, které jej naplní pouze tři (3):

  • table_catalog složku, ve kterém je umístěn sešit.
  • TABLE_NAME.
  • table_type, jak bylo uvedeno výše.
Podle dokumentace ADO je možné načíst seznam listů pouze, například zadáním následující další kritéria metody OpenSchema:
Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "System Table"))
				
bohužel to nefunguje proti zdroje dat aplikace Excel s MDAC verze vyšší než 2.0 pomocí buď zprostředkovatele.

Informační pole dotazu

Každé pole (sloupec) zdroje dat aplikace Excel je jeden následující datové typy:

  • numerické (ADO datový typ 5, adDouble)
  • Měna (ADO datový typ 6, adCurrency)
  • logické nebo logická hodnota (ADO datový typ 11, adBoolean)
  • Datum (ADO datový typ 7, adDate pomocí Jet; 135 adDBTimestamp pomocí ODBC)
  • text (ad...Char typ ADO, například 202 adVarChar 200 adVarWChar nebo podobné)
Numeric_precision číselný sloupec vždy vrácena jako 15 (což je maximální přesnost v aplikaci Excel); character_maximum_length sloupec textu vždy vrácena jako 255 (což je šířku maximální zobrazení, ale není maximální délku, text ve sloupci Excel). Není mnohem pole užitečné informace, které lze získat za vlastnost data_type. Vyžádání seznamu dostupných polí v tabulce s následujícím kódem:
Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, "TableName", Empty))
				
the zprostředkovatele Jet vrací sady záznamů, které obsahuje 28 pole, které naplní osm (8) pro číselná pole a devět (9) pro textová pole. Užitečné pole jsou pravděpodobně tyto:

  • TABLE_NAME
  • název_sloupce
  • ordinal_position
  • data_type
Zprostředkovatel ODBC vrátí záznamů obsahující 29 pole, které naplní deseti (10) pro číselná pole a 11 textových polí. Užitečné polí jsou stejné jako dříve.

Výčet tabulky a pole a jejich vlastnosti

Kód jazyka (například následující ukázkový) lze vytvořit výčet tabulky a sloupce k dispozici pole informace o jednotlivých a zdroje dat aplikace Excel. Tato ukázka výstupem na seznam List1, jeho výsledky ve stejném formuláři.
Dim cn As ADODB.Connection
Dim rsT As ADODB.Recordset
Dim intTblCnt As Integer, intTblFlds As Integer
Dim strTbl As String
Dim rsC As ADODB.Recordset
Dim intColCnt As Integer, intColFlds As Integer
Dim strCol As String
Dim t As Integer, c As Integer, f As Integer
Set cn = New ADODB.Connection
With cn
	.Provider = "Microsoft.Jet.OLEDB.4.0"
	.ConnectionString = "Data Source=" & App.Path & _
"\ExcelSrc.xls;Extended Properties=Excel 8.0;"
	'.Provider = "MSDASQL"
	'.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & App.Path & "\ExcelSrc.xls; "
	.CursorLocation = adUseClient
	.Open
End With
Set rsT = cn.OpenSchema(adSchemaTables)
intTblCnt = rsT.RecordCount
intTblFlds = rsT.Fields.Count
List1.AddItem "Tables:	" & intTblCnt
List1.AddItem "--------------------"
For t = 1 To intTblCnt
	strTbl = rsT.Fields("TABLE_NAME").Value
	List1.AddItem vbTab & "Table #" & t & ":	" & strTbl
	List1.AddItem vbTab & "--------------------"
	For f = 0 To intTblFlds - 1
		List1.AddItem vbTab & rsT.Fields(f).Name & _
vbTab & rsT.Fields(f).Value
	Next
	List1.AddItem "--------------------"
	Set rsC = cn.OpenSchema(adSchemaColumns, Array(Empty, Empty, strTbl, Empty))
	intColCnt = rsC.RecordCount
	intColFlds = rsC.Fields.Count
	For c = 1 To intColCnt
		strCol = rsC.Fields("COLUMN_NAME").Value
		List1.AddItem vbTab & vbTab & "Column #" & c & ": " & strCol
		List1.AddItem vbTab & vbTab & "--------------------"
		For f = 0 To intColFlds - 1
			List1.AddItem vbTab & vbTab & rsC.Fields(f).Name & _
vbTab & rsC.Fields(f).Value
		Next
		List1.AddItem vbTab & vbTab & "--------------------"
		rsC.MoveNext
		Next
		rsC.Close
		List1.AddItem "--------------------"
		rsT.MoveNext
Next
rsT.Close
cn.Close
				

Použití okna zobrazení dat

Vytvořit odkaz na zdroj dat aplikace Excel data v okně zobrazení dat jazyka v okně zobrazení dat se zobrazí stejné informace, které můžete načíst programově, jak je popsáno výše. Poznámka: v určitých zprostředkovatele Jet uvádí obou listů a pojmenovaných oblastí v části "Tabulky", kde zobrazuje zprostředkovatele ODBC pouze pojmenované oblasti. Pokud používáte zprostředkovatele ODBC a definovaných pojmenované oblasti seznamu "Tabulky" bude prázdná.

Excel omezení

Použití aplikace Excel jako zdroj dat vázaná interní omezení listů a sešitů aplikace Excel. Tyto zahrnují však nejsou omezena na:

  • Velikost listu: 65 536 řádků a 256 sloupců
  • Buňka obsahu (text): 32,767 znaků
  • Listů v sešitu: Omezeno dostupnou pamětí
  • Názvy v sešitu: Omezeno dostupnou pamětí

Odkazy

Další informace o použití ADO.NET načíst a upravit záznamy v sešitu aplikace Excel s Visual Basic .NET klepněte na následující číslo článku databáze Microsoft Knowledge Base:
316934Jak použít ADO.NET k přijetí a upravit záznamy v sešitu aplikace Excel S jazyka .NET
Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
295646Jak přenosu dat ze zdroje dat. ADO Excel s ADO
246335Jak přenosu dat z ADO Recordset Excel s automatizace
247412INFORMACE: Metody pro přenos dat do aplikace Excel z jazyka
278973Příklad: ExcelADO znázorňuje způsob pomocí ADO číst a zapisovat data sešity Excel
318373Jak načíst Metadata z aplikace Excel v aplikaci Visual Basic .NET pomocí metody GetOleDbSchemaTable

Vlastnosti

ID článku: 257819 - Poslední aktualizace: 27. ledna 2007 - Revize: 4.6
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 3
  • Microsoft Visual Basic for Applications 6.0
  • Microsoft ActiveX Data Objects 2.1
  • Microsoft ActiveX Data Objects 2.1 Service Pack 1
  • Microsoft ActiveX Data Objects 2.1 Service Pack 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.1 Service Pack 1
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.5
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
Klíčová slova: 
kbmt kbhowto kbiisam KB257819 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:257819

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com