请问如何获得一个mdb数据库中,所用表的名字
并负到listbox中。

解决方案 »

  1.   

    select name from msysobjects where type=1
      

  2.   

    dim ss as new adodb.recordset
    dim s  as new adodb.connection
    dim strConnstr as string
    strConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & Server.MapPath("simple.mdb")
    s.open strConnStr
    strConnStr="select name from msysobjects where type=1"
    ss.open strConnStr,s
    出现错误,不能读取记录;在'msysobjects'上没有读取数据的权限
    我应该怎么处理呢?
      

  3.   

    先添加引用DAO,工程-->引用-->Microsoft DAO 3.6 Option Explicit
    Dim mDB As Database
    Dim i As IntegerPrivate Sub Form_Load()
       Set mDB = DBEngine.Workspaces(0).OpenDatabase("C:\Documents and Settings\new\My Documents\db2.mdb")
        For i = 0 To mDB.TableDefs.Count - 1
            If Left(mDB.TableDefs(i).Name, 4) <> "MSys" Then
                         
                 List1.AddItem (mDB.TableDefs(i).Name)
             End If
        Next
        
    End Sub已调试过!
      

  4.   

    http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=8159
      

  5.   

    安装MSDN后,在其安装目录下有一个VISDATA的文件夹,这个是VB自带
    的数据库浏览器的源代码,在里面可以找到你想要的关于数据库的所
    有东西
      

  6.   

    用ADO方法也可获得所有用户表名
      

  7.   

    Option Explicit
    Dim t As ADOX.Table
    Dim ts As ADOX.Tables
    Dim ca As ADOX.Catalog
    Dim sCon As ADODB.ConnectionPrivate Sub Form_Activate()
        Set sCon = New ADODB.Connection
        Set ca = New ADOX.Catalog
        sCon.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & databasename
        sCon.Open
        ca.ActiveConnection = sCon
        Set ts = ca.Tables
        For Each t In ts
            Print t.Name & "   " & t.Type
        Next
        
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        Set ca = Nothing
        sCon.Close
        Set sCon = Nothing
        Set t = Nothing
        Set ts = Nothing
    End Sub