当前位置: 首页 > 图文教程 > 数据库 > Access > 获取access数据库中表的个数及名称

Access
高手支招ASP及Access的安全隐患及对策
如何设置ACCESS2003(运行时)的宏安全性级别
在窗体间传递参数的几种常用办法
完美表格:使用表层属性来提高效率
设计完美表格:适当地命名域
Access应用:仔细地选择索引
Access应用的几个技巧
ASP实现access随机显示不重复记录解决方案
巧用Access逐条输出Excel中的记录
Access数据库安全中常见问题汇总
在VB中动态创建数据库
在Access中使用系统表保存应用程序变量
使ACCESS数据库保持同步
当Access文件大于指定的大小时就自动压缩
数据库并发问题详述
ACCESS集锦
以独占方式打开Access数据库
数据在Access与Office组件间自由流动
基于Access数据库的抽奖系统设计
转换Access数据库以获得更优性能

Access 中的 获取access数据库中表的个数及名称


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 55 ::
收藏到网摘: n/a

以下为引用的内容:
'功能:获取access库中表的个数及表的名称
'用ado怎样实现
'工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)
'----------------------------------------------------------------------------
Private Sub Form_Load()
Dim adoCN  As New ADODB.Connection        '定义数据库的连接
Dim strCnn  As New ADODB.Recordset
Dim rstSchema As New ADODB.Recordset
Dim I As Integer
  str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:Northwind.MDB;Persist Security Info=False"
  adoCN.Open str1
    
  Set rstSchema = adoCN.OpenSchema(adSchemaTables)
  
  Do Until rstSchema.EOF
    If rstSchema!TABLE_TYPE = "TABLE" Then
      out = out & "Table name: " & _
        rstSchema!TABLE_NAME & vbCr & _
        "Table type: " & rstSchema!TABLE_TYPE & vbCr
      I = I + 1
    End If
    rstSchema.MoveNext
  Loop
  MsgBox I
  rstSchema.Close
  
  adoCN.Close
Debug.Print out
End Sub 

方法二:

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

请参考以下动画:如何获取对msysobject的操作权限

http://access911.net/eg/swf/msobject.swf

警告:不要修改任何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;