Comment faire pour transférer des données d'une source de données ADO vers Excel avec ADO

Traductions disponibles Traductions disponibles
Numéro d'article: 295646 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Étant donné que Microsoft Excel est tel un outil de d'analyse de données puissante, aux développeurs d'applications Visual Basic et VBA est souvent recommandé d'importer des données dans une feuille de calcul Excel fins d'analyse. Cet article décrit l'approche (ActiveX Data Objects) de cette tâche de programmation, à l'aide de Microsoft Jet syntaxe pour certaines commandes SQL.

Cet article décrit les solutions de programmation et ne décrit pas les fonctionnalités d'importation de données de pilotée par le menu d'Excel (via l'option Ouvrir dans le menu Fichier ) ou l'utilisation de Microsoft Query (de l'option données externes dans le menu données ).

Pour plus d'informations sur les solutions complémentaires programmation qui utilisent d'automatisation d'Excel au lieu de commandes SQL, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
246335 Comment faire pour transférer des données à partir de jeu d'enregistrements ADO vers Excel avec Automation

Plus d'informations

Dans les exemples qui suivent, cnSrc représente une connexion ADO ouverte à l'exemple de Northwind base de données Jet utilisant le fournisseur OLE DB Jet 4.0.

Comment faire pour copier

Vous pouvez utiliser l'instruction SELECT INTO pour copier des données de toute source de données Jet peut lire dans n'importe quel destination de données, créez une nouvelle table (ou, dans le cas d'Excel, une nouvelle feuille de calcul) à la volée. N'utilisez pas la syntaxe dollar par exemple, [Sheet1 $], lorsque vous faire référence à un nom de la feuille comme destination. Le classeur de destination peut exister ou inexistant ; toutefois, la table de destination doit existe pas encore.

Il existe trois façons d'écrire la commande copier copie toute la table clients à partir de la base de données Microsoft Access Les Comptoirs dans une nouvelle feuille dans un classeur Excel. Chaque syntaxe nécessite une unique instruction SQL et crée les en-têtes de colonne dans la première ligne de la feuille de destination.
  • L'exemple suivant utilise la syntaxe SELECT INTO :
    Dim strSQL As String
    strSQL = "SELECT * INTO [Excel 8.0;Database=" & App.Path & _ 
        "\book1.xls].[Sheet1] FROM Customers"
    cnSrc.Execute strSQL
    					
  • L'exemple suivant utilise la syntaxe SELECT INTO... IN:
    strSQL = "SELECT * INTO [Sheet1] IN '' [Excel 8.0;Database=" & App.Path & _
        "\book1.xls] FROM Customers"
    						
    où les informations de base de données de destination bracketed sont précédées d'une paire de guillemets simples pour l'argument type (la partie « Excel 8.0 »), qui est inclus dans les crochets lorsque vous utilisez cette syntaxe vide.
  • L'exemple suivant utilise la syntaxe de remplacement de la clause IN:
    strSQL = "SELECT * INTO [Sheet1] IN '" & App.Path & _
        "\book1.xls' 'Excel 8.0;' FROM Customers"
    						
    où l'argument type est désormais répertorié séparément après le chemin d'accès au fichier de destination.

Comment faire pour ajouter

Vous pouvez utiliser l'instruction INSERT INTO... IN pour ajouter des données de toute source de données Jet peut lire dans les données destination. Le classeur de destination et la feuille de calcul doivent exister. Maintenant que vous faites référence à une feuille de calcul existante, vous devez utiliser la syntaxe de signe dollar standard, par exemple, un [Sheet1 $], lorsque vous faire référence à un nom de la feuille comme destination. De plus, les en-têtes de colonne doivent déjà être présents ; en d'autres termes, cette instruction peut uniquement être utilisée pour ajouter à une table existante.

Il existe deux façons d'écrire la commande Ajout copie toute la table clients à partir de la base de données Les Comptoirs dans une feuille d'existante calcul Excel, qui a déjà les en-têtes de colonne appropriées.
  • L'exemple suivant utilise la syntaxe INSERT INTO... IN:
    strSQL = "INSERT INTO [Sheet1$] IN '' [Excel 8.0;Database=" & App.Path & _
        "\book1.xls] SELECT * FROM Customers"
    						
    où les informations de base de données de destination bracketed sont à nouveau précédées par une paire de guillemets pour l'argument type, qui est maintenant vide inclus entre les crochets.
  • L'exemple suivant utilise la syntaxe de remplacement de la clause IN:
    strSQL = "INSERT INTO [Sheet1$] IN '" & App.Path & _
        "\book1.xls' 'Excel 8.0;' SELECT * FROM Customers"
    					

Références

Pour plus d'informations sur cette syntaxe spécifiques de Jet, consultez le fichier d'aide SQL JETSQL40.chm, en particulier les rubriques sur l'instruction SELECT INTO, l'instruction INSERT INTO et la clause IN.

Propriétés

Numéro d'article: 295646 - Dernière mise à jour: mercredi 23 août 2006 - Version: 2.4
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Excel 2000 Standard
  • Microsoft Visual Basic 5.0 Édition Entreprise
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 Édition professionnelle
  • Microsoft Visual Basic 6.0 Édition professionnelle
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Excel 97 Standard
Mots-clés : 
kbmt kbdatabase kbhowto kbjet kbmdacnosweep KB295646 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 295646
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.

Envoyer des commentaires

 

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