Méthode 1: Utilisez la méthode OpenSchema () de ADO pour ouvrir des adschematables et créer un ensemble d'enregistrements de schéma
Code:
<%
Constadschematables = 20
adschemacolumns = 4
Dimconn, DB
dimconnstr
db = "temp.mdb" 'Nom du fichier de base de données d'accès, veuillez utiliser le chemin absolu par rapport au répertoire racine du site Web
Connstr = "Provider = Microsoft.jet.oledb.4.0; DataSource =" & Server.Mappath (DB)
SetConn = server.createObject ("adodb.connection")
Conn.OpenConstr
Diable
Faible
SetrstSchema = conn.openschema (adschematables)
DowhilenottrstSchema.eof
Response.Write ("TableName:" & rstSchema ("table_name") & vbcr & _
"TableType:" & rstSchema ("table_type") & vbcr)
réponse.write ("<br/>")
I = i + 1
RSTSCHEMA.MOVENEXT
Boucle
rstSchema.close
Conn.Close
%>
Méthode 2: Access System Table MsysObjects contient une liste d'objets de base de données. Bien que cela ne soit pas documenté dans la documentation, vous pouvez toujours obtenir ce que vous voulez en l'interrogeant. Cependant, par défaut, le tableau du système d'exploitation ne peut pas être utilisé et les autorisations doivent être définies manuellement pour interroger le tableau système.
Veuillez vous référer à l'animation suivante: Comment obtenir des autorisations d'opération pour MsysObject http://blog.iyi.cn/user/david/archives/images/msobject.swf
Cependant, je ne trouve pas ces tables système dans Access2003. Je ne sais pas si M $ améliore la sécurité de l'accès.
Utilisez l'instruction SQL suivante pour obtenir ce que vous voulez
Code:
Requête:
SelectmsysObjects.nameFrommsysObjectSwhere (Left ([name], 1) <> "~") et (msysObjects.Type) = 5OrderByMsySobjects.name;
Formulaire:
SelectmsysObjects.nameFrommsysObjectsWhere (Left ([Name], 1) <> "~") et (msysObjects.type) = - 32768OrderBymsySobjects.name;
surface:
SelectmsysObjects.nameFrommsysObjectsWhere (Left ([Name], 1) <> "~") et (Left $ ([name], 4) <> "msys") et (msysObjects.type) = 1OrderByMsySoBjects.name;
Rapport:
SelectmsysObjects.nameFrommsysObjectsWhere (Left ([Name], 1) <> "~") et (msysObjects.type) = - 32764OrderBymsySobjects.name;
Module:
SelectmsysObjects.nameFrommsysObjectSwhere (Left ([name], 1) <> "~") et (msysObjects.Type) = - 32761OrderBymsySobjects.name;
Macro:
SelectmsysObjects.nameFrommsysObjectsSwhere (Left ([Name], 1) <> "~") et (msysObjects.type) = - 32766OrderBymsySobjects.name;