Select the product you need help with
ADO gebruiken met Excel-gegevens vanuit Visual Basic of VBAArtikel ID: 257819 - Bekijk de producten waarop dit artikel van toepassing is. Op deze paginaSamenvattingDit artikel bespreekt het gebruik van ActiveX Data Objects
(ADO) met Microsoft Excel-werkbladen als gegevensbron. Het artikel ook
markeert de syntaxis van de problemen en beperkingen die specifiek zijn voor Excel. Dit artikel is
OLAP niet bespreken of draai tabel technologieën of andere gespecialiseerde gebruikmaakt van Excel
gegevens. Voor extra informatie, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base: 303814
(http://support.microsoft.com/kb/303814/EN-US/
)
ADOX gebruiken met Excel-gegevens vanuit Visual Basic of VBAMeer informatieINLEIDINGDe rijen en kolommen van een Microsoft Excel-werkblad nauw lijkt op de rijen en kolommen van een data base tabel. Als gebruikers houden Microsoft Excel is een relationeel data base beheersysteem rekening en de beperkingen die dit feit oplegt herkennen, vaak is het zinvol te houden voordeel van Excel en de hulp programma's voor het opslaan en analyseren van gegevens.Microsoft ActiveX-gegevensobjecten maakt het mogelijk om een Excel-werkmap te behandelen alsof het een data base. In dit artikel wordt beschreven hoe u kunt dit doen in de volgende secties:
Verbinding maken met Excel met ADOADO verbinding kan maken met een gegevensbestand met een van de twee OLE DB-Providers opgenomen in MDAC:
Het gebruik van de Microsoft Jet OLE DB-voorzieningDe Jet-Provider vereist slechts twee stukjes informatie in volg orde verbinding maken met een Excel-gegevensbron: het pad, inclusief de bestandsnaam en de Excel-bestandsversie.Jet Provider met behulp van een verbindingsreeks Kan installeerbare ISAM niet vinden. Jet Provider met behulp van het dialoog venster Data Link-eigenschappen Als u ADO-gegevensbesturing of de gegevens omgeving in de toepassing, deData Link-eigenschappenin het dialoog venster wordt weer gegeven voor het verzamelen van de benodigde verbinding instellingen.
Kolom koppen: Standaard, wordt ervan uitgegaan dat de eerste rij de Excel-gegevensbron bevat kolom koppen die kunnen worden gebruikt als veld namen. Als dit niet het geval is, moet u deze instelling uitschakelen of de eerste inschakelen gegevens rij verdwijnt"" moet worden gebruikt als veldnamen. Dit wordt gedaan door de optioneelHDR =op deUitgebreide eigenschappenvan de verbindingsreeks. De standaard instelling niet hoeft te worden is opgegeven,HDR = Yes. Als u geen kolom koppen, moet u opgevenHDR = No; de provider namen van de velden F1, F2, enzovoort. Omdat deUitgebreide eigenschappenteken nu meerdere waarden bevat, moet tussen dubbele aanhalings tekens zelf, plus een extra paar dubbele aanhalings tekens om Visual De eerste set aanhalings tekens worden behandeld als letterlijke waarden, zoals in de volgende basis in het volgende voorbeeld (waarbij extra spaties zijn toegevoegd voor visuele helderheid). Met behulp van Microsoft OLE DB Provider for ODBC DriversDe provider voor ODBC-stuurprogramma's (die in dit artikel verwijst naar de "ODBC Provider" omwille van de bondigheid) vereist ook stukken slechts twee (2) informatie voor de verbinding met een Excel-gegevensbron: de naam van het stuur programma en de werk map pad en bestands naam.BELANGRIJK: Excel een ODBC-verbinding is standaard het ken merk alleen-lezen. Uw ADO Record setLockTypeinstelling van de eigenschap heeft deze instelling verbinding niveau niet negeren. U moet instellenAlleen-lezennaarFalsein de verbindingsreeks of als u de DSN-configuratie de gegevens bewerken. Anders wordt het volgende foutbericht weer gegeven: Bewerking moet een bijwerkbare query gebruiken. Als u ADO-gegevensbesturing of de gegevens omgeving in de toepassing, deData Link-eigenschappenin het dialoog venster wordt weer gegeven voor het verzamelen van de benodigde verbinding instellingen.
Kolom koppen: Standaard, wordt ervan uitgegaan dat de eerste rij de Excel-gegevensbron bevat kolom koppen, kunnen worden gebruikt als veld namen. Als dit niet het geval is, moet u deze instelling uitschakelen of de eerste inschakelen gegevens rij verdwijnt"" moet worden gebruikt als veldnamen. Dit wordt gedaan door de optioneelFirstRowHasNames =de instelling voor de verbindingsreeks. De standaard waarde niet moet worden opgegeven, isFirstRowHasNames = 1, waarbij1 = True. Als u geen kolom koppen, moet u opgevenFirstRowHasNames = 0, waarbij0 = False; het stuur programma de naam van de velden F1, F2, enzovoort. Deze optie is niet beschikbaar in het dialoog venster DSN-configuratie. Echter, vanwege te een fout in het ODBC-stuurprogramma opgeven van deFirstRowHasNamesmomenteel heeft geen effect. Met andere woorden, de Excel-ODBC stuur programma (MDAC 2. 1 en hoger) behandelt altijd de eerste rij in de opgegeven gegevens bron als veldnamen.Voor meer informatie wilt over de kolomkop bug, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base: 288343 Rijen om te scannen: Excel biedt geen ADO gedetailleerde schema
informatie over de gegevens die deze bevat, zoals een relationele data base.
Daarom moet het stuur programma doorzocht op ten minste een paar rijen van de bestaande
om een schatting goed op het gegevenstype van elke kolom gegevens. Het
standaard waarde 'Rijen to Scan' is acht (8) rijen. U kunt een geheel getal opgeven
van één (1) tot zestien (16) rijen of nul (0) voor het scannen van alle opgeven
bestaande rijen. Dit geschiedt door toevoeging van de optioneleMaxScanRows =om de verbindingsreeks of door deRijen om te scanneninstelling in het dialoog venster DSN-configuratie.
(http://support.microsoft.com/kb/288343/EN-US/
)
BUG: Excel ODBC-stuurprogramma negeert de FirstRowHasNames of de koptekst instellenEchter, opgeven welke rijen u wilt scannen (MaxScanRows) door naar een fout in het ODBC-stuurprogramma momenteel heeft geen effect. Met andere woorden, het Excel ODBC-stuurprogramma MDAC ( 2. 1 en hoger) scans altijd de eerste acht rijen in de opgegeven gegevensbron in de volg orde bepalen van de kolom gegevens type. Voor meer informatie over de rijen te scannen fouten, met inbegrip van een eenvoudige oplossing, klikt u op het artikelnummer hieronder naar het artikel in de Microsoft Knowledge Base: 189897 Andere instellingen: Als u de verbindingsreeks met behulp van maken
hetData Link-eigenschappenhet dialoog venster ziet u een andereUitgebreide eigenschappeninstellingen die niet absoluut zijn toegevoegd aan de verbindings teken reeks
nodig, zoals:
(http://support.microsoft.com/kb/189897/EN-US/
)
Excel 97: Gegevens afgekapt op 255 tekens met ODBC-stuurprogramma voor ExcelIn de ontwerpomgeving van Visual Basic met bepaalde versies van MDAC, verschijnt mogelijk het volgende fout bericht de eerste keer uw programma verbinding maakt met een Excel-gegevensbron in de ontwerpfase: Sorteervolgorde niet ondersteund door het besturings systeem wordt geselecteerd. 246167
(http://support.microsoft.com/kb/246167/EN-US/
)
PRB: Reeks fout Opening ADODB record set voor het eerst tegen een Excel XLS sorterenOverwegingen voor beide OLE DB-ProvidersEen waarschuwing over gemengde gegevenstypenZoals eerder vermeld, moet ADO schatting van het gegevenstype voor elke kolom in uw Excel-werkblad of bereik. (Dit wordt niet beïnvloed door Cel opmaak instellingen Excel). Een ernstig probleem kan ontstaan als er numerieke waarden worden gecombineerd met tekstwaarden in dezelfde kolom. Zowel de Jet en de ODBC Provider de gegevens van het type van meerderheid, maar retourneert NULL (leeg) waarden voor het gegevenstype van het minderheids belang. Als de twee typen gelijkelijk wordt gemengd de kolom, de provider kiest numerieke over tekst heen. Bijvoorbeeld:
Om dit probleem te omzeilen voor alleen-lezen gegevens inschakelenImport modusmet de instelling "IMEX = 1 ' in de uitgebreide eigenschappen van de verbindingsreeks. Dit dwingt deImportMixedTypes = tekstregisterinstelling. Bedenk dat updates onverwacht kunnen geven resultaten in deze modus.Voor meer informatie over deze instelling, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base te bekijken: 194124 U kunt een wacht woord beveiligde werkmap niet openen
(http://support.microsoft.com/kb/194124/EN-US/
)
PRB: Excel-waarden worden geretourneerd als NULL met OpenRecordset van DAOAls de Excel-werkmap is beveiligd met een wacht woord, u kan niet openen voor gegevenstoegang, zelfs door het juiste wacht woord opgeven de verbindingsinstellingen, tenzij het werk map bestand is al geopend in de Microsoft Excel-toepassing. Als u probeert, verschijnt het volgende fout bericht: Kan het bestand niet ontsleutelen. 211378
(http://support.microsoft.com/kb/211378/EN-US/
)
Excel 2000: Fout "Kan bestand decoderen" met wacht woord beveiligd bestandOphalen en bewerken van Excel-gegevens met ADOIn deze sectie worden twee aspecten van het werken met uw Excel gegevens:
Gegevens selecterenEr zijn verschillende manieren om gegevens te selecteren. U kunt:
Excel-gegevens met Code selecterenExcel-gegevens kunnen worden opgenomen in de werkmap in een van de volgende:
Een werk blad als de record bron wilt opgeven, gebruikt u de werk blad naam gevolgd door een dollarteken en tussen vierkante haken. Voor in het volgende voorbeeld: Als u beide weglaten het dollarteken en de haken of gewoon het dollarteken, verschijnt de volgende bericht: ... de Jet data base engine
het opgegeven object niet gevonden FROM-component bevat een syntaxisfout. Query bevat een syntaxisfout. Onvolledige querycomponent. Een benoemd cel ber eik opgeven als de record bron de gedefinieerde naam gewoon gebruiken. Bijvoorbeeld: Op een niet-benoemde cel ber eik als uw RecordSource, standaard notatie voor Excel rij/kolom toevoegen aan het einde van het blad de naam tussen vierkante haken. Bijvoorbeeld: Een waarschuwing over het opgeven van bereiken: Wanneer u een werk blad opgeven als de record bron de provider nieuwe records onder bestaande records in het werk blad worden toegevoegd als ruimte toegestaan. Als u een bereik opgeeft (benoemde of niet-benoemde), Jet ook nieuwe records toegevoegd onder de bestaande records in het bereik als ruimte toestaat. Echter, als u QueryOpnieuwUitvoeren op het oorspronkelijke bereik, de resulterende record set omvat niet de toegevoegde records buiten het bereik. Met MDAC-versies voorafgaand aan 2. 5 wanneer u een benoemd bereik opgeven u kunt nieuwe records toevoegen buiten de definitie van het bereik of het volgende fout bericht: Kan het benoemde bereik niet uitbreiden. Excel-gegevens met ADO-gegevensbesturing selecterenNadat u de verbindingsinstellingen voor uw Excel-gegevens opgeven bron op deAlgemeentabblad van het ADODCEigenschappenhet dialoog venster, klikt u op deRecord brontabblad. Als u een CommandType van adCmdText kiest, kunt u een Selectiequery in deOpdrachtteksthet dialoog venster met de syntaxis die eerder zijn beschreven. Als u een CommandType adCmdTable en u gebruikt de Jet-Provider, de keuze lijst staan de benoemde bereiken en de voorstellen die beschikbaar zijn in de geselecteerde werkmap met benoemde bereiken als eerste weer gegeven.In dit dialoog venster vak goed het dollarteken toegevoegd aan werk blad namen, maar voegt niet toe de vierkante haakjes nodig. Als gevolg hiervan, kiest u gewoon de naam van een werk blad en klik opOK, u later verschijnt het volgende foutbericht: FROM-component bevat een syntaxisfout. Excel-gegevens met gegevens omgeving opdrachten selecterenNa het instellen van de gegevensverbinding voor de omgeving voor uw Excel gegevens bron, maakt een nieuwOpdrachtobject. Als u eenGegevens bronvanSQL-instructie, kunt u een query invoeren in het tekstvak via de syntaxis beschreven eerder. Als u eenGegevens bronvanData base Object, selecteerTabelin de eerste vervolg keuze lijst en u gebruikt de Jet-Provider benoemde bereiken en beschikbaar in werk blad namen worden weer gegeven in de vervolg keuze lijst de geselecteerde werkmap met benoemde bereiken als eerste weer gegeven. (Als u een werk blad naam op deze locatie niet hoeft toe te voegen vierkante haken de naam van het werk blad als u handmatig doen voor ADO-gegevensbesturing.) Als u de ODBC Provider gebruikt, ziet u alleen benoemde bereiken in deze vervolg keuze lijst lijst. U kunt de naam van een werk blad echter handmatig invoeren.Hoe wijzigen-Excel-gegevens: bewerken, toevoegen en verwijderenBewerkenU kunt Excel-gegevens bewerken met de standaard ADO-methoden. Record set velden die overeenkomen met de cellen in de Excel werk blad met Excel-formules (beginnend met '=') zijn alleen-lezen en kunnen niet worden bewerkt. Vergeet niet dat een ODBC-verbinding naar Excel standaard het ken merk alleen-lezen tenzij u anders in uw verbindingsinstellingen opgeven. Zie eerder onder "werken met de Microsoft OLE DB Provider for ODBC Drivers. ' Toevoegen U kunt records toevoegen aan uw Excel recordsource ruimte toegestaan. Echter, als u nieuwe records buiten het bereik dat u oorspronkelijk opgegeven, zijn deze records niet zichtbaar als u opnieuw op het oorspronkelijke bereik specificatie. Zie eerder onder "Een waarschuwing over het opgeven van bereiken." In bepaalde omstandigheden, wanneer u deAddNewenUpdatemethoden van ADORecord setinvoegen van nieuwe rijen gegevens in een Excel-tabel, ADO-object mogelijk Plaats de gegevens waarden in de verkeerde kolommen in Excel.Klik op het artikel voor meer informatie volgende nummer het artikel in de Microsoft Knowledge Base: 314763 Verwijderen
(http://support.microsoft.com/kb/314763/EN-US/
)
FIX: ADO voegt de gegevens in de verkeerde kolommen in ExcelU beperkt zijn meer gegevens dan Excel verwijderen gegevens uit een relationele gegevensbron. In een relationele data base heeft "rij" geen betekenis of bestaan, afgezien van de "record"; in een Excel-werkblad is dit niet True. U kunt waarden in velden (cellen) verwijderen. Echter, kunt u niet:
Structuur van de bron gegevens (metagegevens) ophalen uit ExcelU kunt gegevens over de structuur van uw Excel-gegevens ophalen bron (tabellen en velden) met ADO. Resultaten verschillen enigszins tussen de twee OLE DB-Providers, hoewel beide ten minste hetzelfde kleine aantal nuttige keren gegevens velden. Deze metagegevens kan worden opgehaald met deOpenSchemamethode van ADOVerbindingobject, een ADO retourneertRecord setobject. U kunt ook de krachtige Microsoft ActiveX Data Objects Extensions for Data Definition Language and Security (ADOX) bibliotheek Dit doel. In het geval van een Excel-gegevensbron waar "tabel" is echter een werk blad of benoemd bereik en een "veld" is een van een beperkt aantal van algemene gegevens typen is deze extra energie niet nuttig.Tabel gegevens opvragenVan de verschillende objecten die beschikbaar zijn in een relationele data base (tabellen, weergaven, opgeslagen procedures, enzovoort), een Excel-gegevensbron beschrijft Alleen tabel equivalenten, die bestaat uit de werk bladen en benoemde bereiken gedefinieerd in de opgegeven werkmap. Benoemde bereiken worden behandeld als "Tabellen" en werk bladen worden beschouwd als "systeemtabellen" en er is veel handige tabel gegevens die kunnen worden opgehaald dan deze eigenschap "table_type". U vraagt een lijst met beschikbare tabellen in de werkmap met de volgende code:
De ODBC Provider retourneert ook een record set met negen (9) velden, die wordt gevuld slechts drie (3):
Veld gegevens opvragenElk veld (kolom) in een Excel-gegevensbron is een van de de volgende gegevens typen:
Tabellen en velden en hun eigenschappen opsommenVisual Basic-code (zoals in het volgende voorbeeld) kan worden gebruikt om de tabellen en kolommen in een Excel-gegevensbron en de beschikbare opsommen velden met informatie over elk. In dit voorbeeld voert de resultaten aan een keuze lijst List1 gepubliceerd op hetzelfde formulier.Gebruik het venster gegevens weer gevenAls u een gegevenskoppeling naar een Excel-gegevensbron in de Visual maken Basis gegevensweergave venster de gegevensweergave venster geeft dezelfde informatie die u kunt ophalen via programmering zoals eerder is beschreven. Let vooral op dat de Jet-Provider werk bladen en benoemde bereiken onder "Tabellen bevat" waar de ODBC Provider bevat alleen benoemde bereiken. Als u de ODBC-stuurprogramma Provider en zijn niet gedefinieerd benoemde bereiken, de lijst "Tabellen" zal zijn leeg.Beperkingen van ExcelHet gebruik van Excel als gegevensbron wordt gebonden door de interne beperkingen van Excel-werkmappen en -werk bladen. Deze omvatten maar zijn niet beperkt tot:
ReferentiesVoor meer informatie over het gebruik van ADO.NET-naar-
ophalen en wijzigen van records in een Excel-werkmap met Visual Basic.Net werk, klikt u op
het volgende artikelnummer om het artikel weer te geven in de Microsoft Knowledge
Basis: 316934 Voor meer informatie klikt u op de
artikel nummers hieronder om de artikelen worden weer gegeven in de Microsoft Knowledge Base:
(http://support.microsoft.com/kb/316934/EN-US/
)
Het gebruik van ADO.NET wilt ophalen en wijzigen van Records in een Excel-werkmap met Visual Basic.NETTO295646
(http://support.microsoft.com/kb/295646/EN-US/
)
Het ADO-gegevensbron gegevens overbrengen naar Excel met ADO246335
(http://support.microsoft.com/kb/246335/EN-US/
)
Het ADO-Recordset gegevens overbrengen naar Excel automatisering247412
(http://support.microsoft.com/kb/247412/EN-US/
)
INFO: Methoden voor het overdragen van gegevens naar Excel vanuit Visual Basic278973
(http://support.microsoft.com/kb/278973/EN-US/
)
Voorbeeld: ExcelADO laat zien hoe u ADO gebruiken voor het lezen en schrijven van gegevens in Excel-werkmappen318373
(http://support.microsoft.com/kb/318373/EN-US/
)
Informatie over metagegevens ophalen uit Excel met behulp van de methode GetOleDbSchemaTable in Visual Basic.NETTOEigenschappenArtikel ID: 257819 - Laatste beoordeling: zaterdag 17 september 2011 - Wijziging: 3.0 De informatie in dit artikel is van toepassing op:
Automatische vertaling BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten. De Engelstalige versie van dit artikel is de volgende:257819
(http://support.microsoft.com/kb/257819/en-us/
)
| Vertaalde artikelen
|




Naar boven








