วิธีที่ 1: ใช้วิธี OpenSchema () ของ ADO เพื่อเปิด adschematables และสร้างชุดบันทึกสคีมา
รหัส:
-
Constadschematables = 20
Adschemacolumns = 4
Dimconn, db
dimconnstr
db = "temp.mdb" 'ชื่อไฟล์ฐานข้อมูลการเข้าถึงโปรดใช้เส้นทางสัมบูรณ์ที่สัมพันธ์กับไดเรกทอรีรูทของเว็บไซต์
connstr = "ผู้ให้บริการ = 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)
Response.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.namefrommsysobjectswhere (ซ้าย ([ชื่อ], 1) <> "~") และ (msysobjects.type) = 5 orderbymsysobjects.name;
รูปร่าง:
SelectmsysObjects.namefrommsysobjectswhere (ซ้าย ([ชื่อ], 1) <> "~") และ (msysobjects.type) =-32768OrderBymsysObjects.name;
พื้นผิว:
SelectmsysObjects.namefrommsysobjectswhere (ซ้าย ([ชื่อ], 1) <> "~") และ (ซ้าย $ ([ชื่อ], 4) <> "msys") และ (msysobjects.type) = 1OrderBySysObjects.name;
รายงาน:
SelectmsysObjects.namefrommsysobjectswhere (ซ้าย ([ชื่อ], 1) <> "~") และ (msysobjects.type) =-32764OrderBymsysObjects.name;
โมดูล:
SelectmsysObjects.namefrommsysobjectswhere (ซ้าย ([ชื่อ], 1) <> "~") และ (msysobjects.type) =-32761OrderBymsysObjects.name;
มาโคร:
SelectmsysObjects.namefrommsysobjectswhere (ซ้าย ([ชื่อ], 1) <> "~") และ (msysobjects.type) =-327666 orderbymsysobjects.name;