方法1:ADOのOpenSchema()メソッドを使用してAdSchematablesを開き、スキーマレコードセットを作成します
コード:
<%
Constadschematables = 20
adschemacolumns = 4
Dimconn、db
DimconnStr
db = "temp.mdb" 'アクセスデータベースファイル名、ウェブサイトのルートディレクトリに関連する絶対パスを使用してください
connstr = "provider = microsoft.jet.oledb.4.0; dataSource ="&server.mappath(db)
setConn = server.createObject( "adodb.connection")
conn.openconnstr
Dimrstschema
薄暗い
setrstschema = conn.openschema(adschematables)
dowhilenottrstschema.eof
Response.Write( "TableName:"&rstschema( "table_name")&vbcr&_
"tabletype:"&rstschema( "table_type")&vbcr)
respons.write( "<br/>")
i = i+1
rstschema.movenext
ループ
rstschema.close
conn.close
%>
方法2:アクセスシステムテーブルMSYSObjectsには、データベースオブジェクトのリストが含まれています。ドキュメントには文書化されていませんが、それを照会することで、必要なものを取得できます。ただし、デフォルトでは、オペレーティングシステムテーブルを操作することはできず、システムテーブルを照会するためにアクセス許可を手動で設定する必要があります。
次のアニメーションを参照してください:msysobject http://blog.iyi.cn/user/david/archives/images/msobject.swfの操作許可を取得する方法
ただし、Access2003にこれらのシステムテーブルが見つかりません。 M $がアクセスのセキュリティを強化するかどうかはわかりません。
次のSQLステートメントを使用して、必要なものを取得します
コード:
クエリ:
selectmsysobjects.namefromssobjectswhere(左([name]、1)<> "〜")および(msysobjects.type)= 5orderbymsysobjects.name;
形状:
selectmsysobjects.namefromssobjectswhere(左([name]、1)<> "〜")および(msysobjects.type)= -32768ORDERBYMSYSOBJECTS.NAME;
表面:
selectmsysobjects.namefromssobjectswhere(左([name]、1)<> "〜")および(左$([name]、4)<> "msys")および(msysobjects.type)= 1 orderbymsysobjects.name;
報告:
selectmsysobjects.namefromssobjectswhere(左([name]、1)<> "〜")および(msysobjects.type)= -32764ORDERBYMSYSOBJECTS.NAME;
モジュール:
selectmsysobjects.namefromssobjectswhere(左([name]、1)<> "〜")および(msysobjects.type)= -32761ORDERBYMSYSOBJECTS.NAME;
マクロ:
selectmsysobjects.namefromssobjectswhere(左([name]、1)<> "〜")および(msysobjects.type)= -32766 orderbymsysobjects.name;