Requête UNION dans Excel
J’ai créé une requête
UNION
(simple association de deux tables avec champsNom
etPré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 :
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 :
Astuce rapide
Une petite astuce devrait faire l’affaire : elle consiste à « encapsuler » votre requête UNION
dans une requête standard. Pour cela :
- Dans Access, activez l’onglet Créer, sur le ruban.
- Cliquez sur l’icône Création de requête.
- 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
. - Construisez votre deuxième requête comme d’habitude, en plaçant les champs qui vous intéressent (a priori tous !) sur la grille.
- Enregistrez votre requête (pour la suite :
rqt Union2
).
Retour dans Excel
Cette fois, dans Excel, vous voyez ceci :
… et la requête peut être importée dans Excel.
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)
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êteUNION
) 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 » ?
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!
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..)