"select table_name from INFORMATION_SCHEMA.TABLES where TABLE_TYPE='BASE TABLE'"你试一下??我的程序就是这样用的。

解决方案 »

  1.   

    Dim con, cnn As ADODB.Connection
    Dim rs As Recordset
    Set rs = con.OpenSchema(adSchemaTables)
    rs!table_name就是con连接的数据库的所有表
    rs!table_type="TABLE"的是用户表
    rs!type_type="STYTEM TABLE"的是系统表
      

  2.   


    Public Sub OpenSchemaX()   Dim cnn1 As ADODB.Connection
       Dim rstSchema As ADODB.Recordset
       Dim strCnn As String
          
       Set cnn1 = New ADODB.Connection
          strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\gaoqi.mdb;Persist Security Info=False;Jet OLEDB:Database Password=gaoqi"
       cnn1.Open strCnn
          
       Set rstSchema = cnn1.OpenSchema(adSchemaTables)
       
       Do Until rstSchema.EOF
            If Not Left(rstSchema!table_name, 4) = "MSys" Then
                List1.AddItem rstSchema!table_name
            End If
            rstSchema.MoveNext
          
       Loop
       rstSchema.Close
       
       cnn1.Close
       
    End Sub
      

  3.   

    Private Sub Form_Load()
    Dim adoCN As New ADODB.Connection       '定义数据库的连接存放数据和代码Dim rstSchema
    Dim strCnn As New ADODB.Recordset
          
      str1 = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=wktrade;Data Source=net5"
      adoCN.Open str1
        
      Set rstSchema = adoCN.OpenSchema(adSchemaTables)
      
      Do Until rstSchema.EOF
          out = out & "Table name: " & _
            rstSchema!TABLE_NAME & vbCr & _
            "Table type: " & rstSchema!TABLE_TYPE & vbCr
          rstSchema.MoveNext
      Loop
      rstSchema.Close
      
      adoCN.Close
    Debug.Print out
    End Sub
      

  4.   

    你说的是哪一种数据库阿,INFORMATION_SCHEMA在access数据库中可是没有的
    我记得vb里提供了查询数据库中表名字的功能,好像是用listitem方法,具体怎么写,忘了