Método 1: Use o método OpenSchema () de ADO para abrir adschematables e crie um conjunto de registros de esquema
Código:
<%
Constadschematables = 20
adschemacolumns = 4
Dimconn, db
Dimconnstr
db = "temp.mdb" 'Nome do arquivo de banco de dados de acesso, use o caminho absoluto em relação ao diretório raiz do site
Connstr = "Provider = Microsoft.Jet.oledb.4.0; DataSource =" & Server.mappath (DB)
SetConn = server.createObject ("adodb.connection")
Conn.OPENCONNSTR
Dimrstschema
Escurecido
Setrstschema = Conn.openschema (adschematables)
Dowhilenottrststschema.eof
Response.Write ("TableName:" & RSTSCHEMA ("TABLE_NAME") & VBCR & _
"TableType:" & rstschema ("tabela_type") e vbcr)
Response.Write ("<br/>")
I = i+1
rstschema.movenext
Laço
rstschema.close
Conn.Close
%>
Método 2: Tabela de acesso à tabela MSYSOBJETS contém uma lista de objetos de banco de dados. Embora não esteja documentado na documentação, você ainda pode obter o que deseja consultar. No entanto, por padrão, a tabela do sistema operacional não pode ser operada e as permissões devem ser configuradas manualmente para consultar a tabela do sistema.
Consulte a seguinte animação: como obter permissões de operação para msysobject http://blog.iyi.cn/user/david/archives/images/msobject.swf
No entanto, não consigo encontrar essas tabelas de sistema no Access2003. Não sei se M $ aprimora a segurança do Access.
Use a seguinte instrução SQL para obter o que você deseja
Código:
Consulta:
SelectmsysObjects.namefrommsysysObjectSwhere (esquerda ([nome], 1) <> "~") e (msysObjects.type) = 5OrderByMSySObjects.Name;
Forma:
SelectmsysObjects.nameFrommsySysObjectSwhere (esquerda ([nome], 1) <> "~") e (msysObjects.type) =-32768OrderByMSySObjects.Name;
superfície:
SelectmsysObjects.namefrommsysysObjectSwhere (esquerda ([nome], 1) <> "~") e (esquerda $ ([nome], 4) <> "msys") e (msysObjects.type) = 1OrderByMsySObjects.Name;
Relatório:
SelectmsysObjects.nameFrommsySysObjectSwhere (esquerda ([nome], 1) <> "~") e (msysObjects.type) =-32764OrderByMSySObjects.Name;
Módulo:
SelectmsysObjects.nameFrommsySysObjectSwhere (esquerda ([nome], 1) <> "~") e (msysObjects.type) =-32761OrderBymsySObjects.Name;
Macro:
SelectmsysObjects.nameFrommsySysObjectSwhere (esquerda ([nome], 1) <> "~") e (msysObjects.type) =-32766OrderByMsySObjects.Name;