引用Microsoft ADO Ext. 2.x for DDL and Security
Sub disptables(mydbpath As String) '显示指定数据库中所有表名
Dim msg As String
Dim mycat As New ADOX.Catalog
msg = ""
Set mycat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & mydbpath & ";"
For i = 0 To mycat.Tables.Count - 1
If Left(mycat.Tables.Item(i).Name, 4) <> "MSys" Then '去掉系统表
msg = msg & mycat.Tables.Item(i).Name & vbCrLf
End If
Next
MsgBox msg
End Sub
Sub disptables(mydbpath As String) '显示指定数据库中所有表名
Dim msg As String
Dim mycat As New ADOX.Catalog
msg = ""
Set mycat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & mydbpath & ";"
For i = 0 To mycat.Tables.Count - 1
If Left(mycat.Tables.Item(i).Name, 4) <> "MSys" Then '去掉系统表
msg = msg & mycat.Tables.Item(i).Name & vbCrLf
End If
Next
MsgBox msg
End Sub
Set mycat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & mydbpath & ";"
就会提示“compile error: object required”的错误提示呢??
我有给mydbpath 参数符于正确的数据库绝对路径和数据库名了。
Sub disptables(mydbpath As String) '显示指定数据库中所有表名
Dim msg As String
Dim mycat As New ADOX.Catalog
dim cn as new adodb.connection msg = ""
cn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & mydbpath & ";"
Set mycat.ActiveConnection = cnFor i = 0 To mycat.Tables.Count - 1
If Left(mycat.Tables.Item(i).Name, 4) <> "MSys" Then '去掉系统表
msg = msg & mycat.Tables.Item(i).Name & vbCrLf
End If
Next
MsgBox msg
End Sub
用ADODB.connection对象的OpenSchema过程就可以了dim cn as adodb.connection
dim rs as adodb.recordset
dim Finded as booleanset cn=new adodb.connection
cn.open "" 'your connection string Set rs = cn.OpenSchema(adSchemaTables)
'拷贝以下代码
'加入3.6 DAO 引用 Public strDBName As String
Public db As Database
Dim tbCount, i, fdCount, j As Integer
Dim litm(1 To 13) As String
Dim nod As Node
'改变以下代码加入数据库名称及路径
strDBName = "d:\vb98\BIBLIO.MDB"
Set db = dbengine.opendatabase(strDBName)
tbCount = db.TableDefs.Count - 1
'改变TREEVIEW的名称为你所用的名称
TreeView1.Nodes.Clear
For i = 0 To tbCount
fdCount = db.TableDefs(i).Fields.Count
If Not Left(db.TableDefs(i).Name, 4) = "MSys" Then '去掉系统数据库
Set nod = TreeView1.Nodes.Add(, , _
db.TableDefs(i).Name, db.TableDefs(i).Name)
'加入数据库中表名
tbCount = db.TableDefs(i).Fields.Count - 1
For j = 0 To tbCount
Set nod = TreeView1.Nodes.Add(db.TableDefs(i).Name, _
tvwChild, , db.TableDefs(i).Fields(j).Name)
'加入表字段
Next j
End If
Next i
'关闭数据库
db.Close
Set db = Nothing
End Function直接运行就可以看到结果
很对,方便实用,不过你记得要引用dao 3。6啊。用ado也一样。
用类似的方法可获得表中的所有字段名。