我用代码写:
Private Function tb_num(ByRef tb_name() As String)
Dim dbase As Database
Dim m As Long
Dim tbldef As TableDef
Set dbase = OpenDatabase(App.Path & "\database\" & database_niandu & "cbasedatadatabase.mdb") 'App.Path & "\database\" & database_niandu & "cbasedatadatabase.mdb"
For Each tbldef In dbase.TableDefs
tb_name(m) = tbldef.name
m = m + 1
Next
End Function但提示错误!!可能因为我的数据库是ACCESSXP,以上代码只能用与ACCESS97,是否?如果是,如何解决?
Private Function tb_num(ByRef tb_name() As String)
Dim dbase As Database
Dim m As Long
Dim tbldef As TableDef
Set dbase = OpenDatabase(App.Path & "\database\" & database_niandu & "cbasedatadatabase.mdb") 'App.Path & "\database\" & database_niandu & "cbasedatadatabase.mdb"
For Each tbldef In dbase.TableDefs
tb_name(m) = tbldef.name
m = m + 1
Next
End Function但提示错误!!可能因为我的数据库是ACCESSXP,以上代码只能用与ACCESS97,是否?如果是,如何解决?
Dim adoCN As New ADODB.Connection '定义数据库的连接存放数据和代码Dim rstSchema
Dim strCnn As New ADODB.Recordset
str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB;Persist Security Info=False"
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
---------------------------------------------------------------
sql server:
select name from sysobjects where xtype='u'
mysql :
show tables
Dim conn As ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str As String
Set conn = New ADODB.Connection
str = "Provider=Microsoft.Jet.OLEDB.4.0;Password='';User ID=Admin;Data Source=" + FrmOpen.Text1.Text + ";"
conn.Open str
Set rs = conn.OpenSchema(ADODB.SchemaEnum.adSchemaTables)
Do Until rs.EOF
If rs("table_Type").Value = "TABLE" Then
Form2.List1.AddItem (rs("table_Name").Value)
End If
rs.MoveNext
Loop
rs.Close
conn.Close