VB6.0 有什么办法列出数据库(access类型的,Sjk.mdb)中所有的表名吗? 
 数据库是用Office 的 Access 创建的
而且设置有密码(密码是:1)

解决方案 »

  1.   

    SELECT name FROM MSysObjects WHERE Flags=0 AND Type=1我试过,可以
      

  2.   

    ado   或者DAO都可以。
      

  3.   

    ADOX要简单一些
    http://topic.csdn.net/t/20060104/11/4497260.html
      

  4.   

    2楼的方法,似乎只有SQL server数据库为才可以用关注
      

  5.   

    在access中可以使用, MSysObjects是Access的系统表.
      

  6.   

    dim cn As ADODB.Connection
    dim rs as ADODB.Recordset
    cn.open "连接串"
    set rs=cn.OpenSchema(adSchemaTables)记录rs(2)中保存的就是表名,其中"MSysRelationships", "MSysQueries", "MSysObjects", "MSysModules2", "MSysModules", "MSysACEs", "MSysAccessObjects"为系统表,其他为用户定义表
      

  7.   

        Dim cn As ADODB.Connection
        Dim rs As ADODB.Recordset
        
        Set cn = New ADODB.Connection
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & App.Path & "\db1.mdb;" _
            & "Persist Security Info=False;" _
            & "Jet OLEDB:Database Password=123"
        
        Set rs = New ADODB.Recordset
        Set rs = cn.OpenSchema(adSchemaTables, _
            Array(Empty, Empty, Empty, "TABLE"))
        While Not rs.EOF
            Debug.Print rs!TABLE_NAME
            rs.MoveNext
        Wend
        rs.Close
        cn.Close
      

  8.   

    借助vbman2003的代码,将ACCESS数据库的表名放入ComboBOX显示:
    Option Explicit
        Dim tabelName(50) As String
        Dim i As Integer
        Dim l As IntegerPrivate Sub Combo1_Click()
        Text1 = Combo1
    End SubPrivate Sub Command1_Click()
        Dim fileN As String
        CommonDialog1.ShowOpen
        fileN = CommonDialog1.FileName
        Dim cn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Set cn = New ADODB.Connection
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " _
        & "Data Source=" & fileN & ";" _
            & "Persist Security Info=False;" _
            & "Jet OLEDB:Database Password=123"
        Set rs = New ADODB.Recordset
        Set rs = cn.OpenSchema(adSchemaTables, _
            Array(Empty, Empty, Empty, "TABLE"))
        While Not rs.EOF
            tabelName(i) = rs!TABLE_NAME
            i = i + 1
            rs.MoveNext
        Wend
        rs.Close
        cn.Close
        l = i - 1
        For i = 0 To l
            Combo1.AddItem tabelName(i)
        Next
    End SubPrivate Sub Form_Load()
        Text1 = ""
        Combo1 = ""
    End Sub