会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > DAO/ADO/ADP > 正文

用ADO列出某个表的所有字段、索引

时间:2005-02-04 00:00 来源:Access911 作者:cg1『文章… 阅读:

 

 

  查询类型                标准
   =============================

 

   adSchemaTables             TABLE_CATALOG
                              TABLE_SCHEMA
                              TABLE_NAME
                              TABLE_TYPE



使用 adSchemaTables 列出数据库中所有的表
在 Microsoft Access 97 and access 2000 中以下例子展示了如何列出northwind数据库中所有的表和查询

 Set rs = cn.OpenSchema(adSchemaTables)
   While Not rs.EOF
      Debug.Print rs!TABLE_NAME
      rs.MoveNext
   Wend


只列出表用以下的代码:            
Set rs = cn.OpenSchema(adSchemaTables, _
         Array(Empty, Empty, Empty, "Table")

 

在 Microsoft SQL Server 6.5 and 7.0 中以下代码列出Publs中所有的表和视图

Set rs = cn.OpenSchema(adSchemaTables)


只列出所有表用:    
 Set rs = cn.OpenSchema(adSchemaTables, _
         Array("Pubs", Empty, Empty, "Table")

                

 


 

查询类型                标准字
   ===============================

 

   adSchemaColumns   TABLE_CATALOG
                     TABLE_SCHEMA
                     TABLE_NAME
                     COLUMN_NAME


                
用 adSchemaColumns 列出表中所有字段
在 Microsoft Access 97 and access 2000 中列出 northwind.mdb 数据库 employees 表的所有字段代码如下:

Set rs = cn.OpenSchema(adSchemaColumns,Array(Empty, Empty, "Employees")

 

While Not rs.EOF
   Debug.Print rs!COLUMN_NAME
   rs.MoveNext
Wend



注意:需要OLE DB Provider for ODBC 和 Jet ODBC Driver 和 Jet OLE DB Providers支持

 

在 Microsoft SQL Server 6.5 and 7.0 中列出 Pubs database 中  Authors 表的所有字段用以下代码:

Set rs = cn.OpenSchema(adSchemaColumns, Array("pubs", "dbo", "Authors")


            
   查询类型              标准字
   ================================

 

   adSchemaIndexes    TABLE_CATALOG
                      TABLE_SCHEMA
                      INDEX_NAME
                      TYPE
                      TABLE_NAME



在下面例子中你必须提供一个索引名让 adSchemaIndexes querytype 使用
在 Microsoft Access 97 and access 2000 中列出 northwind.mdb 数据库的 employees 表的所有索引用以下代码:

 Set rs = cn.OpenSchema(adSchemaIndexes, _
         Array(Empty, Empty, Empty, Empty, "Employees")

 

While Not rs.EOF
   Debug.Print rs!INDEX_NAME
   rs.MoveNext
Wend


 

在 Microsoft SQL Server 6.5 and 7.0 中列出 Pusb 数据库 Authors 表的所有索引用以下代码:

 Set rs = cn.OpenSchema(adSchemaIndexes, _
         Array("Pubs", "dbo", Empty, Empty, "Authors")

 

下面是一段完整的代码展示如何在 Sql Server + VB 中使用:

   'Open the proper connection.
   Dim cn As New ADODB.Connection
   Dim rs As New ADODB.Recordset

 

   Private Sub Command1_Click()
   'Getting the information about the columns in a particular table.
      Set rs = cn.OpenSchema(adSchemaColumns, Array("pubs", "dbo", _
             "authors"))
      While Not rs.EOF
          Debug.Print rs!COLUMN_NAME
          rs.MoveNext
      Wend

   End Sub

   Private Sub Command2_Click()
   'Getting the information about the primary key for a table.
      Set rs = cn.OpenSchema(adSchemaPrimaryKeys, Array("pubs", "dbo", _
             "authors"))
      MsgBox rs!COLUMN_NAME
   End Sub

   Private Sub Command3_Click()
   'Getting the information about all the tables.
      Dim criteria(3) As Variant
      criteria(0) = "pubs"
      criteria(1) = Empty
      criteria(2) = Empty
      criteria(3) = "table"
      Set rs = cn.OpenSchema(adSchemaTables, criteria)
      While Not rs.EOF
         Debug.Print rs!TABLE_NAME

         rs.MoveNext
      Wend

   End Sub

   Private Sub Form_Load()
      cn.Open "dsn=pubs;uid=sa;pwd=;"
      'To test with the Native Provider for SQL Server, comment the
      ' line above then uncomment the following line. Modify to use
      ' your server.
      'cn.Open "Provider=SQLOLEDB;Data Source=;" & _
      '        "User ID=sa;password=;"

   End Sub


 

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: