用VB怎样取得ACCESS数据库的全部的表名称?

解决方案 »

  1.   

    Private Sub Command1_Click()
        Dim intIndex                        As Integer
        Dim objCon                          As ADODB.Connection
        Dim objRst                          As ADODB.Recordset
          
        ' 產生一個新Connection物件,並設定objCon作為存取的物件變數。
        Set objCon = New ADODB.Connection
        
        ' 使用Open方法連接,並設定相關參數。
        objCon.Open gstrConn_NWind
        
        ' 找出資料表名稱。
        Set objRst = objCon.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "Table"))
        
        ' 列舉名稱、型態、修改日期資料。
        If objRst.RecordCount <> 0 Then
            intIndex = 1
            Do Until objRst.EOF
                lvw1.ListItems.Add intIndex, , objRst.Fields("TABLE_NAME")
                lvw1.ListItems(intIndex).SubItems(1) = objRst.Fields("TABLE_TYPE")
                lvw1.ListItems(intIndex).SubItems(2) = Format(objRst.Fields("DATE_MODIFIED"), "yyyy/mm/dd")
                intIndex = intIndex + 1
                objRst.MoveNext
            Loop
        End If
        
        objRst.Close
        objCon.Close
        Set objRst = Nothing
        Set objCon = Nothing
    End Sub
      

  2.   

    Private Sub Command12_Click()
    Dim i As Integer, ii As Integer
    Dim tempName As String
    Dim db As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    db.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.path & "\dev.mdb"
    db.Open
             
    Set rs = db.OpenSchema(adSchemaTables)
         
    ii = rs.Fields.CountDo While Not rs.EOF
        tempName = rs!TABLE_NAME
        If Mid(tempName, 1, 2) <> "MS" Then
            Debug.Print tempName
        End If
        rs.MoveNext
    Loop
    rs.Close
    End Sub