Dim adoCN As New ADODB.Connection '定义数据库的连接 Dim strCnn As New ADODB.Recordset Dim I As Integer 'str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Northwind.MDB;Persist Security Info=False" adoCN.Open DataConnectString
Set rstSchema = adoCN.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF If rstSchema!TABLE_TYPE = "TABLE" Then out = out & "Table name: " & _ rstSchema!TABLE_NAME & vbCr & _ "Table type: " & rstSchema!TABLE_TYPE & vbCr I = I + 1 End If rstSchema.MoveNext Loop MsgBox I rstSchema.Close
adoCN.Close Debug.Print out
前面那个有点问题。用这个, 刚刚调试通过Dim AdoCN As New ADODB.Connection '定义数据库的连接 Dim strCnn As New ADODB.Recordset Dim I As Integer Dim out As String Dim str1 As String str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\仓库管理.MDB;Persist Security Info=False" AdoCN.Open str1 'DataConnectString
Set strCnn = AdoCN.OpenSchema(adSchemaTables)
Do Until strCnn.EOF If strCnn!TABLE_TYPE = "TABLE" Then out = out & "Table name: " & _ strCnn!TABLE_NAME & vbCr & _ "Table type: " & strCnn!TABLE_TYPE & vbCr I = I + 1 End If strCnn.MoveNext Loop MsgBox I strCnn.Close
Dim db As Database Dim td As TableDef Dim wrkspace As Workspace Private Sub Form_Load() Set wrkspace = DBEngine.Workspaces(0) Set db = wrkspace.OpenDatabase(App.Path & "\你的数据库名.mdb") '载入数据库中的所有表 For Each td In db.TableDefs If (td.Attributes And dbSystemObject) = 0 Then Combo1.AddItem td.Name '在窗体上加一个Combo1控件来显示所有表的名称 End If Next End Sub
Dim strCnn As New ADODB.Recordset
Dim I As Integer
'str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Northwind.MDB;Persist Security Info=False"
adoCN.Open DataConnectString
Set rstSchema = adoCN.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
If rstSchema!TABLE_TYPE = "TABLE" Then
out = out & "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
I = I + 1
End If
rstSchema.MoveNext
Loop
MsgBox I
rstSchema.Close
adoCN.Close
Debug.Print out
刚刚调试通过Dim AdoCN As New ADODB.Connection '定义数据库的连接
Dim strCnn As New ADODB.Recordset
Dim I As Integer
Dim out As String
Dim str1 As String
str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\仓库管理.MDB;Persist Security Info=False"
AdoCN.Open str1 'DataConnectString
Set strCnn = AdoCN.OpenSchema(adSchemaTables)
Do Until strCnn.EOF
If strCnn!TABLE_TYPE = "TABLE" Then
out = out & "Table name: " & _
strCnn!TABLE_NAME & vbCr & _
"Table type: " & strCnn!TABLE_TYPE & vbCr
I = I + 1
End If
strCnn.MoveNext
Loop
MsgBox I
strCnn.Close
AdoCN.Close
Debug.Print out
此時你可看到5張系統表,
在mssysobject表里的name字段中存放著所有的表名,
你可以用SQL語句直接去取。
跟操作普通的表一樣。
Dim td As TableDef
Dim wrkspace As Workspace
Private Sub Form_Load()
Set wrkspace = DBEngine.Workspaces(0)
Set db = wrkspace.OpenDatabase(App.Path & "\你的数据库名.mdb")
'载入数据库中的所有表
For Each td In db.TableDefs
If (td.Attributes And dbSystemObject) = 0 Then
Combo1.AddItem td.Name '在窗体上加一个Combo1控件来显示所有表的名称
End If
Next
End Sub