'引用 ADOXSub CreateTable()   Dim tbl As New Table
   Dim cat As New ADOX.Catalog   cat.ActiveConnection = _
      "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=c:\Program Files\Microsoft Office\" & _
      "Office\Samples\Northwind.mdb;"      Msgbox tbl.Name
End Sub

解决方案 »

  1.   

    使用ADO:
        Dim strCnn As String
        Dim cnn As New ADODB.Connection, rst As New ADODB.Recordset
        
        strCnn = ......
        
        cnn.Open strCnn
        
        Set rst = cnn.OpenSchema(adSchemaTables)
        Do Until rst.EOF
            If rst.Fields(3) = "TABLE" Then
                Debug.Print rst.Fields(2)
            End If
            
            rst.MoveNext
        Loop
      

  2.   

    这个问题太简单了。
    只要把sysObject的那个系统表读出来并且
    使用select * sysObject where xtype="u"
    就可以把用户建的所有表名读出来了。
      

  3.   

    使用SQL_DMO:
    Private Sub Form_Load()
        Dim tb As SQLDMO.Table
        Dim svr As New SQLDMO.SQLServer
        Dim db As SQLDMO.Database
        
        svr.Connect "服务器", "用户名", "口令"
        Set db = svr.Databases("数据库名")
        For Each tb In db.Tables
            If tb.SystemObject = False Then
                Debug.Print tb.Name
            End If
        Next
    End Sub
      

  4.   

    select name from sysobjects where type='U'
    执行此语句先连到你的数据库就可以