Partager via


UNION, opération (Microsoft Access SQL)

S’applique à : Access 2013, Office 2013

L’opération UNION dans Access crée une requête Union qui combine les résultats d’au moins deux requêtes ou tables indépendantes.

Syntaxe

[TABLE] requête1 UNION [ALL] [TABLE] requête2 [UNION [ALL] [TABLE] requêten [ … ]]

L'opération UNION est composée des arguments suivants :

Quitter

Description

query1-n

Instruction SELECT, nom d’une requête stockée, ou nom d’une table stockée précédés du mot clé TABLE.

Remarques

Vous pouvez fusionner les résultats de deux ou plusieurs requêtes, tables ou instructions SELECT, dans n'importe quel ordre, en une unique opération UNION. L'exemple suivant fusionne une table existante New Accounts avec une instruction SELECT :

TABLE [New Accounts] UNION ALL 
SELECT * 
FROM Customers 
WHERE OrderAmount > 1000;

Par défaut, l'opération UNION ne renvoie aucun enregistrement en double mais vous pouvez ajouter le prédicat ALL pour obtenir de façon certaine que tous les enregistrements soient renvoyés. La requête s'exécutera plus rapidement par ailleurs.

Toutes les requêtes dans une opération UNION doivent demander le même nombre de champs. Toutefois, les champs ne doivent pas nécessairement avoir les même taille ou .

N'utilisez des alias que dans la première instruction SELECT ; ils seront ignorés dans toutes les autres. Dans la clause ORDER BY, faites référence aux champs par leurs noms tels qu'ils sont spécifiés dans la première instruction SELECT.

Remarque

  • Vous pouvez utiliser une clause GROUP BY ou HAVING dans chaque argument requête pour regrouper les données renvoyées.
  • Vous pouvez utiliser une clause ORDER BY à la fin du dernier argument requête pour afficher les données renvoyées dans un ordre spécifié.

Exemple

Cet exemple extrait les noms et les villes de tous les fournisseurs et clients au Brésil. Il appelle la procédure EnumFields que vous pouvez trouver dans l’exemple d’instruction SELECT.

    Sub UnionX() 
     
        Dim dbs As Database, rst As Recordset 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
         
        ' Retrieve the names and cities of all suppliers  
        ' and customers in Brazil. 
        Set rst = dbs.OpenRecordset("SELECT CompanyName," _ 
            & " City FROM Suppliers" _ 
            & " WHERE Country = 'Brazil' UNION" _ 
            & " SELECT CompanyName, City FROM Customers" _ 
            & " WHERE Country = 'Brazil';") 
         
        ' Populate the Recordset. 
        rst.MoveLast 
         
        ' Call EnumFields to print the contents of the  
        ' Recordset. Pass the Recordset object and desired 
        ' field width. 
        EnumFields rst, 12 
     
        dbs.Close 
     
    End Sub