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'
Utilisez MSysObjects
SELECT * FROM MSysObjects WHERE Type=1 AND Flags=0
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
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
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
SELECT name FROM MSysObjects where database <> ''
utilisez cette requête pour obtenir les noms de toutes les tables liées