如何用vb获得access数据库的所有表名 
我用以下的方法试过(vb6.0 ADO接口),看那位高手提供更好的办法。 
dim TableSet as adodb.recordset 
dim Gconnection as adodb.connection sub getTableName 
   set gconnection=new adodb.connection 
   gConnection.Open "Driver=Microsoft Access driver ( 
*.mdb);UID=;PWD=;DBQ=d:\test.mdb;"      Set TableSet = gConnection.OpenSchema(adSchemaTables, Array(Empty,   Empty, Empty, Empty)) 
   Do Until TableSet.EOF 
        msgbox "表名:" & tableset!table_type &" 表类型:" & TableSet! table_type,vbinformation,"表" 
        TableSet.MoveNext 
   Loop 
end sub 
 
  
资料来源:网易社区 

解决方案 »

  1.   


        Dim adoConnectionX As New ADODB.Connection 
        Dim adoSchemaRecordsetX As New ADODB.Recordset 
        'Ms SQL 7: 
        'adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=yuer;DataBase=NorthwindCS" 
        'Access 2000: 
        adoConnectionX.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\DRptPlus\DRptPlus\Data\NWind2K.mdb;Persist Security Info=False" 
         
        Dim TestTableName As String 
        TestTableName = "产 品 " 
         
        Set adoSchemaRecordsetX = adoConnectionX.OpenSchema(adSchemaTables, Array(Empty, Empty, TestTableName, "Table")) 
         
        If Not adoSchemaRecordsetX.EOF Then 
         MsgBox "[" & TestTableName & "]表 已 存 在 !" 
        End If 
         
        方 法 2(引 用 Microsoft ADO Extensions 2.1 for DDL and Security (ADOX)): 
        ( 主 持 人 注 : 需 要 升 级 至 VB 6.0SP3) 
        Dim adoConnectionX As New ADODB.Connection 
        'Ms SQL 7: 
        adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=yuer;DataBase=NorthwindCS" 
        'Access 2000: 
        'adoConnectionX.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\DRptPlus\DRptPlus\Data\NWind2K.mdb;Persist Security Info=False" 
         
        Dim adoxCatalogX As New ADOX.Catalog 
        Set adoxCatalogX.ActiveConnection = adoConnectionX 
         
        Dim TestTableName As String 
        TestTableName = "产 品 " 
         
        Dim adoxTableX As ADOX.Table 
        For Each adoxTableX In adoxCatalogX.Tables 
         If adoxTableX.Name = TestTableName Then 
         MsgBox "[" & TestTableName & "]表 已 存 在 !" 
         Exit For 
         End If 
        Next 
        主 持 人 注 : 方 法 2也 可 以 这 样 : 
        Private Sub Command1_Click() 
        Dim cat As ADOX.Catalog 
        Dim tbl As ADOX.Table 
         
        Set cat = New ADOX.Catalog 
        Set cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.3.51;" _ 
        & "Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb" 
        On Error Resume Next 
        Set tbl = cat.Tables("MyTable") 
         
        If tbl Is Nothing Then 
         MsgBox "MyTable doesn't exist" 
        Else 
         MsgBox "MyTable exists" 
         Set tbl = Nothing 
        End If 
         
        Set cat = Nothing 
        Set con = Nothing 
        End Sub