Method 1: Use the OpenSchema() method of ado to open adSchemaTables and create a schema record set
Code:
<%
ConstadSchemaTables=20
adSchemaColumns=4
dimConn,db
dimConnStr
db="temp.mdb"'ACCESS database file name, please use the absolute path relative to the root directory of the website
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(db)
Setconn=Server.CreateObject("ADODB.Connection")
conn.Openconnstr
DimrstSchema
Dim
SetrstSchema=Conn.OpenSchema(adSchemaTables)
DowhilenottrstSchema.EOF
response.write("Tablename:"&rstSchema("TABLE_NAME")&vbCr&_
"Tabletype:"&rstSchema("TABLE_TYPE")&vbCr)
response.write("<br/>")
I=I+1
rstSchema.MoveNext
Loop
rstSchema.Close
conn.Close
%>
Method 2: Access system table MsysObjects contains a list of database objects. Although not documented in the documentation, you can still get what you want by querying it. However, by default, the operating system table cannot be operated, and permissions must be set manually to query the system table.
Please refer to the following animation: How to obtain operation permissions for msysobject http://blog.iyi.cn/user/david/archives/IMAGES/msobject.swf
However, I can't find these system tables in access2003. I don't know if m$ enhances access's security.
Use the following SQL statement to get what you want
Code:
Query:
SELECTMSysObjects.NameFROMMsysObjectsWHERE(Left([Name],1)<>"~")AND(MSysObjects.Type)=5ORDERBYMSysObjects.Name;
Form:
SELECTMSysObjects.NameFROMMsysObjectsWHERE(Left([Name],1)<>"~")AND(MSysObjects.Type)=-32768ORDERBYMSysObjects.Name;
surface:
SELECTMSysObjects.NameFROMMsysObjectsWHERE(Left([Name],1)<>"~")AND(Left$([Name],4)<>"Msys")AND(MSysObjects.Type)=1ORDERBYMSysObjects.Name;
Report:
SELECTMSysObjects.NameFROMMsysObjectsWHERE(Left([Name],1)<>"~")AND(MSysObjects.Type)=-32764ORDERBYMSysObjects.Name;
Module:
SELECTMSysObjects.NameFROMMsysObjectsWHERE(Left([Name],1)<>"~")AND(MSysObjects.Type)=-32761ORDERBYMSysObjects.Name;
Macro:
SELECTMSysObjects.NameFROMMsysObjectsWHERE(Left([Name],1)<>"~")AND(MSysObjects.Type)=-32766ORDERBYMSysObjects.Name;