web-dev-qa-db-fra.com

pouvons-nous lister toutes les tables dans la base de données MS Access en utilisant SQL?

Peut-on trouver toutes les tables dans le msaccess en utilisant SQL.

comme nous le faisons dans sqlserver

select * from sys.tables  

en sqlite

SELECT * FROM sqlite_master where type='table' 
17
Thunder

Utilisez MSysObjects

SELECT * FROM MSysObjects WHERE Type=1 AND Flags=0
17
Alex K.

MS Access contient plusieurs tables système qui sont, par défaut, masquées dans la liste des tables. Vous pouvez leur montrer. 

Dans MS Access 2007, faites un clic droit sur la liste des tables et sélectionnez Navigation Options. Au bas du formulaire, vous trouverez la case à cocher Show System Objects. Vérifiez-le et les tables système apparaîtront dans la liste des tables. Ils commencent tous par MSys.
Vous pouvez également activer le formulaire d’options à partir du menu de l’application - cliquez sur le bouton Access options -> sélectionnez Current Database et le bouton Navigation Options apparaît.

Vous pouvez maintenant examiner la structure et le contenu et générer des requêtes de toutes les tables système avec les outils MsAccess.

Comme Alex a répondu, les informations de table sont dans MSysObjects

2
zendar

La requête suivante m'a aidé à définir une nouvelle conception/migration de MS Access vers C # et SQL Server.

Remarque: combine les réponses fournies par Alex K. et KTys .
Publié ici avec la conviction que cela sera utile à quelqu'un d'autre (ou à moi-même si je dois refaire cela)

SELECT
  SWITCH (
    [type]=-32764,'Report' ,
    [type]  =  1, 'Table, local' ,
    [type]  =  3, 'obj Containers' ,
    [type]  =  4, 'Table, link odbc' ,
    [type]  =  5, 'Query' ,
    [type]  =  6, 'Table, link access' ,
    [type]  =  8, 'SubDataSheets' ,
    TRUE, [type]
  ) AS [type name (or #)]
  , name AS [Table Name]
FROM
  MSysObjects 
ORDER BY 
  2, 3


Notez l’avertissement de KTys (les numéros de types sont sujets à changement)
Ajoutez , * à la clause select pour afficher les autres champs (tels que connect); ils ne m'ont pas aidé.

Créé/testé avec MS Access 2013

1
J. Chris Compton

Cette discussion donneune liste de valeurs de type. Sachez que MS ne garantit pas les mêmes valeurs d’une version à l’autre.

Type    TypeDesc
-32768  Form
-32766  Macro
-32764  Reports
-32761  Module
-32758  Users
-32757  Database Document
-32756  Data Access Pages
1   Table - Local Access Tables
2   Access Object - Database
3   Access Object - Containers
4   Table - Linked ODBC Tables
5   Queries
6   Table - Linked Access Tables
8   SubDataSheets
0
KTys
SELECT name FROM MSysObjects where database <> ''

utilisez cette requête pour obtenir les noms de toutes les tables liées

0
Parth Gupta