Requête UNION dans Excel

J’ai créé une requête UNION (simple association de deux tables avec champs Nom et Prénom). Le fonctionnement est normal dans Access sauf qu’il ne m’est pas possible d’importer la requête sur Excel. La requête n’apparaît pas sur la liste lors de l’exécution de la procédure d’importation de Données Externes. Comment faire ?

Rappel

Une requête UNION est une requête qui permet de joindre les enregistrements de plusieurs tables. Vous trouverez un exemple sur la page Requête UNION du blog. Et en voici un autre (simple) dans une base Access 2010 :

CAPT

Et effectivement, ce type de requête n’apparaît ni dans Excel (en importation de données externes), ni dans Word (en publipostage par exemple). Voici ce qu’on voit dans Excel, après avoir cliqué sur Données externes / Depuis Access. La requête rqt Union est invisible :

CAPT

Astuce rapide

Une petite astuce devrait faire l’affaire : elle consiste à « encapsuler » votre requête UNION dans une requête standard. Pour cela :

  1. Dans Access, activez l’onglet Créer, sur le ruban.
  2. Cliquez sur l’icône Création de requête.
  3. Dans la boîte de dialogue Afficher la table, au lieu de sélectionner une table (comme vous le faites généralement), activez l’onglet Requêtes, et sélectionnez la requête UNION.CAPT
  4. Construisez votre deuxième requête comme d’habitude, en plaçant les champs qui vous intéressent (a priori tous !) sur la grille.
  5. Enregistrez votre requête (pour la suite : rqt Union2).

Retour dans Excel

Cette fois, dans Excel, vous voyez ceci :

CAPT

… et la requête peut être importée dans Excel.

Vous aimerez aussi...

4 réponses

  1. Hervé Inisan dit :

    Robert > 65000 caractères ou 65000 lignes ?
    (les 65535 lignes étant une limite d’Excel 2003, on passe à plus de 1 000 000 avec Excel 2007 et 2010)

  2. Hervé Inisan dit :

    bobotête > Les exemples de l’article sont bien basés sur Office 2010. Dans le doute, je viens de réessayer : la requête UNION (plus exactement : la requête Sélection classique qui encapsule la requête UNION) est bien visible dans Excel 2010, et les données s’affichent correctement sur le tableur.

    Mais on ne parle peut-être pas de la même chose : qu’est-ce que appelles « pas opérante » ?

  3. Robert dit :

    Bonjour!
    J’ai bien suivi votre démarche, intéressante! Le problème est qu’on ne peut exporter sur Excel que des fichiers n’excédant pas 65000 caractères. Moi j’en ai plus d’un million! Alors j’ai besoin de créer une table à partir de ma requête UNION. Comment faire? Merci!

  4. bobotête dit :

    A priori ça ne fonctionne pas sous Office 2010. le seul fait d’avoir une requete appelant une sous-requête faite d’une union la rend invisible lorsqu’on souhaite la choisisr comme source de données sous EXCEL…
    Peut-être pour palier au fait qu’il semblerait que l’encapsulation rend la requêet visible mais en fait ne la rendrait pas opérante (vu sur un autre site : cette astuce produirait une erreur, excel ne tenant alors compte que d’une des requêtes mises en union..)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *