程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> 獲取access庫中表的個數及表的名稱

獲取access庫中表的個數及表的名稱

編輯:關於Access數據庫

功能:獲取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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved