Asp学习站欢迎你!

asp中操作access表[access高级应用]

来源:ASP学习网 作者:Admin 时间:08-05-09 点击:

如何遍历access数据库的数据表,还真没用过,google上搜了一下,找到不少东西。

下面是获取数据表的方法:

方法一:直接用ado的OpenSchema()方法打开adSchemaTables,建立一个schema记录集

 

<%
Const adSchemaTables = 20
adSchemaColumns = 4
dim Conn,db
dim ConnStr
db="temp.mdb"           'ACCESS数据库的文件名,请使用相对于网站根目录的的绝对路径
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open connstr

Dim rstSchema
Dim I
         
Set rstSchema = Conn.OpenSchema(adSchemaTables) 
     
Do while not rstSchema.EOF
   response.write("Table  name:  "& rstSchema("TABLE_NAME") & vbCr & _
    "Table  type:  " & rstSchema("TABLE_TYPE") & vbCr)
 response.write("<br/>")
 I = I + 1
 rstSchema.MoveNext
Loop
rstSchema.Close
 
conn.Close
%>


方法二:Access 系统表 MsysObjects 包含了数据库对象列表。尽管未在文档中记载,你仍可通过查询它来获取你想要的。但是默认情况下无法操作系统表,必须手动设定权限收才能查询系统表。

但是我在access2003中找不到这几个系统表,不知道是不是m$增强了access的安全性。

使用下列 SQL 语句来获取你想要的

查询:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)=5 ORDER BY MSysObjects.Name;


窗体:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)=-32768 ORDER BY MSysObjects.Name;


表:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (Left$([Name],4) <> "Msys") AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name;


报表:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)= -32764 ORDER BY MSysObjects.Name;


模块:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)= -32761 ORDER BY MSysObjects.Name;


宏:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)= -32766 ORDER BY MSysObjects.Name;

标签: access】 【打印】 【关闭
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 验证码: 验证码 查看所有评论