Dim con, cnn As ADODB.Connection Dim rs As Recordset Set rs = con.OpenSchema(adSchemaTables) rs!table_name就是con连接的数据库的所有表 rs!table_type="TABLE"的是用户表 rs!type_type="STYTEM TABLE"的是系统表
Public Sub OpenSchemaX() Dim cnn1 As ADODB.Connection Dim rstSchema As ADODB.Recordset Dim strCnn As String
Set cnn1 = New ADODB.Connection strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\gaoqi.mdb;Persist Security Info=False;Jet OLEDB:Database Password=gaoqi" cnn1.Open strCnn
Set rstSchema = cnn1.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF If Not Left(rstSchema!table_name, 4) = "MSys" Then List1.AddItem rstSchema!table_name End If rstSchema.MoveNext
Loop rstSchema.Close
cnn1.Close
End Sub
Private Sub Form_Load() Dim adoCN As New ADODB.Connection '定义数据库的连接存放数据和代码Dim rstSchema Dim strCnn As New ADODB.Recordset
Dim rs As Recordset
Set rs = con.OpenSchema(adSchemaTables)
rs!table_name就是con连接的数据库的所有表
rs!table_type="TABLE"的是用户表
rs!type_type="STYTEM TABLE"的是系统表
Public Sub OpenSchemaX() Dim cnn1 As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnn As String
Set cnn1 = New ADODB.Connection
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\gaoqi.mdb;Persist Security Info=False;Jet OLEDB:Database Password=gaoqi"
cnn1.Open strCnn
Set rstSchema = cnn1.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
If Not Left(rstSchema!table_name, 4) = "MSys" Then
List1.AddItem rstSchema!table_name
End If
rstSchema.MoveNext
Loop
rstSchema.Close
cnn1.Close
End Sub
Dim adoCN As New ADODB.Connection '定义数据库的连接存放数据和代码Dim rstSchema
Dim strCnn As New ADODB.Recordset
str1 = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=wktrade;Data Source=net5"
adoCN.Open str1
Set rstSchema = adoCN.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
out = out & "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext
Loop
rstSchema.Close
adoCN.Close
Debug.Print out
End Sub
我记得vb里提供了查询数据库中表名字的功能,好像是用listitem方法,具体怎么写,忘了