Numéro d'article: 303814 - Dernière mise à jour: lundi 6 décembre 2004 - Version: 2.1 Comment faire pour utiliser ADOX avec des données Excel à partir de Visual Basic ou de VBA
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites). SommaireRésumé
Les objets ADOX (ActiveX Data Objects Extensions for Data Definition Language and Security) proposent aux développeurs d'objets ADO (ActiveX Data Objects) les fonctions de manipulation par le biais d'un programme de bases de données, de tables, de champs et d'autres objets de bases de données présentes dans les DAO (Data Access Objects). Depuis le lancement du fournisseur OLE DB Microsoft pour Jet version 4.0, qui prend en charge les pilotes ISAM auxquels le moteur Jet fait appel avec les bases de données de bureau autres que Microsoft Access, les développeurs d'objets ADO peuvent utiliser à la fois ADO et ADOX avec les classeurs et les feuilles de calcul Microsoft Excel. Cependant, une feuille de calcul Excel n'étant pas une base de données ordinaire, les objets ADO rencontrent certaines limites lorsqu'ils sont utilisés avec Excel. En particulier, nombre de méthodes ADOX ne fonctionnent pas ou donnent des résultats inattendus lorsqu'elles sont utilisées avec Excel. Cet article présente certaines limites des objets ADOX et d'Excel. Pour plus d'informations sur l'utilisation d'ADO avec Excel, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft. 257819
(http://support.microsoft.com/kb/257819/
)
COMMENT FAIRE : Utiliser ADO avec des données Excel à partir de Visual Basic ou de VBA
Cet article est composé de deux sections :
Plus d'informationsCatalogues ADOXDans le modèle objet ADOX, l'objet Catalog représente une base de données ou, dans le cas d'Excel, un classeur.
Création d'un catalogueVous ne pouvez pas faire appel à la méthode Create de l'objet Catalog ADOX pour créer un classeur Excel. Si vous tentez cette opération, le message d'erreur suivant apparaît :
L'opération n'est pas prise en charge pour ce type d'objet.
Tables ADOXL'objet Table ADOX correspond à l'un des objets Excel (c'est-à-dire, une feuille de calcul ou une plage) pouvant faire office de conteneur de données.Création d'une tableVous pouvez utiliser ADOX pour créer des tables dans Excel. Puisque vous ne pouvez pas créer une table sans créer également des colonnes, l'exemple de code se trouve dans la section intitulée "Colonnes ADOX".
Suppression d'une tableVous ne pouvez pas utiliser ADOX pour supprimer une table (feuille de calcul) ou une plage nommée dans Excel, qu'elle ait été créée ou non à l'aide d'ADOX.
Colonnes ADOXLes colonnes ADOX correspondent aux colonnes ou champs d'une base de données ; elles correspondent exactement aux colonnes d'une feuille de calcul Excel.Types de données ADO utilisés avec ExcelADO reconnaît six types de données dans une source de données Excel auxquelles vous pouvez faire appel pour créer des colonnes :
Colonnes en général
Création de colonnes lors de la création d'une tableLa création de colonnes donne de meilleurs résultats lorsqu'elle se fait au même moment que la création d'une table à l'aide d'ADOX.Le code suivant crée une table (feuille de calcul) contenant deux colonnes (une numérique et une de texte) : Création de colonnes dans une feuille de calcul existanteL'ajout de colonnes à une feuille de calcul pré-existante vide donne des résultats étranges. Lorsque la première colonne ADOX est ajoutée à la collection Colonne de la table, ADOX crée un en-tête de colonne nommé F1 dans la colonne A de la feuille de calcul, puis le nouvel en-tête de colonne ADOX dans la colonne B. Ainsi, le code ADOX qui ajoute deux nouvelles colonnes donne en fait trois en-têtes de colonnes. Si vous tentez de supprimer cette première colonne non voulue de la collection Colonnes avant d'ajouter la première colonne ADOX, l'opération semble aboutir, mais la colonne non voulue est tout de même créée.Suppression de colonnesVous ne pouvez pas supprimer de colonnes d'une table ADOX dans Excel.
Modification du type de données d'une colonne existanteUne fois qu'une colonne a été ajoutée à une table, si vous tentez de définir sa propriété .Type comme étant un type de données différent, vous obtiendrez le message d'erreur suivant :
L'opération demandée n'est pas autorisée dans ce contexte.
Ajout de données à des tables et colonnes ExcelLorsque vous testez du code ADO avec Excel dans l'environnement de conception Visual Basic, la première fois que vous effectuez une opération de jeu d'enregistrements, vous pouvez recevoir le message d'erreur suivant :
L'ordre de tri sélectionné n'est pas géré par le système d'exploitation.
246167
(http://support.microsoft.com/kb/246167/
)
PROBLÈME : Erreur de l'ordre de tri lors de l'ouverture d'un jeu d'enregistrements ADODB pour la première fois sur un fichier XLS Excel Ajout de données à des colonnes Excel créées par ADOXLorsque vous faites appel à ADO pour insérer ou modifier des données dans les tables et colonnes que vous avez créées dans Excel à l'aide d'ADOX, ADO respecte les types de données que vous avez précisés pour ces colonnes, même si l'endroit où ces informations sont stockées n'est pas évident.
Ajout de données à des colonnes Excel ordinairesLorsque vous utilisez ADO pour insérer ou modifier des données dans des feuilles de calcul ou des plages Excel qui n'ont pas été créées ou modifiées à l'aide d'ADOX, il n'existe aucune restriction quant au type de données que vous pouvez insérer.
Utilisation des instructions SQL CREATE, ALTER et DROPVous pouvez exécuter des instructions du langage de définition des données (Data Definition Language, DDL) Microsoft SQL telles que CREATE, ALTER et DROP, sur des objets de base de données Excel, grâce à un objet Connection ADO pour obtenir les mêmes résultats que les méthodes ADOX correspondantes décrites ci-dessus.Conclusion
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Autres ressources Autres sites d'aide
CommunautésTraductions disponibles |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
Retour au début