Dim cnn1 As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnn As String
Set cnn1 = New ADODB.Connection
strCnn = "driver={SQL Server};server=srv;" & _
"uid=sa;pwd=;database=pubs"
cnn1.Open strCnn
Set rstSchema = cnn1.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
Debug.Print "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext Loop
rstSchema.Close
cnn1.Close
Dim rstSchema As ADODB.Recordset
Dim strCnn As String
Set cnn1 = New ADODB.Connection
strCnn = "driver={SQL Server};server=srv;" & _
"uid=sa;pwd=;database=pubs"
cnn1.Open strCnn
Set rstSchema = cnn1.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
Debug.Print "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext Loop
rstSchema.Close
cnn1.Close
解决方案 »
- 数据绑定问题
- msflexgrid控件如何实现行背景颜色交替
- 再发贴求助,如何把表格控件中的数据再存储到原来的access表中?
- ms calendar 控件哪位dx用过,请教~~~~~~~~~~~~~~~~~~
- 弱弱的问
- 關於B/S結構
- winsock会自动断开为什么?
- 不才编了一个通过串形口与硬件通讯的程序,可不知如何打包,只拷贝.exe文件却无相关的串行ocx也无法执行
- 征求DOCK窗口源码
- @ @ @@@@@@@@寻找 复旦大学 计算机系的同学!!!!!!!!!@@@@@@@@@@ @ @
- 关于对象的传递问题
- 如何用vb程序将word文件转换成web文件(不用word.application)
select * from tab
还是用SQL2000吧。
dim b as tabledefset a=opendatabase("您的数据库")
set b=a.tabledefs
for each b in a.tabledefs
debug b.name
next大概就是这个意思,也许有小错,您先试试。
这个例子检查数据控件的 Database 属性并在 Debug 窗口中输出每个 Table 的名称。Sub PrintTableNames ()
Dim Td As TableDef
' 设置数据库文件。
Data1.DatabaseName = "BIBLIO.MDB"
Data1.Refresh ' 打开数据库。
' 读入并输出数据库中每个表的名称。
For Each Td in Data1.Database.TableDefs
Debug.Print Td.Name
Next
End Sub
調用前先用DAO打開MDB
Public Sub GetTableList(cnDase As Database, rctl As Control)
Dim intX As Integer
Dim sTmp As String
Dim tbl As TableDef
On Error Resume Next
rctl.Clear
For Each tbl In cnDase.TableDefs
sTmp = tbl.Name
If (cnDase.TableDefs(sTmp).Attributes And dbSystemObject) = 0 Then
rctl.AddItem sTmp
rctl.ItemData(rctl.NewIndex) = 0
End If
Next
End Sub
'---------------------------grid1-------------
Grid1.Cols = 4
Grid1.TextMatrix(0, 0) = "序号"
Grid1.TextMatrix(0, 1) = "表名称"
Grid1.TextMatrix(0, 2) = "字段数"
Grid1.TextMatrix(0, 3) = "表中记录数"
Grid1.ColWidth(0) = 800
Grid1.ColWidth(3) = 1500
Grid1.Rows = 10
'--------------
Dim dbs As Database
Dim rst As Recordset
Dim tdf As TableDef
Set dbs = OpenDatabase(zhuan_2)
For j = 0 To dbs.TableDefs.Count - 1
If Left$(dbs.TableDefs(j).Name, 4) <> "MSys" Then
i = i + 1
'Grid1.AddItem Grid1.Rows + 1
'Grid1.Rows = i + 1
Grid1.TextMatrix(i, 0) = i
Grid1.TextMatrix(i, 1) = dbs.TableDefs(j).Name
Grid1.TextMatrix(i, 2) = dbs.TableDefs(j).Fields.Count
Grid1.TextMatrix(i, 3) = dbs.TableDefs(j).RecordCount'dbs.TableDefs(i).Fields.Count
'MsgBox dbs.TableDefs(i).RecordCount & "|" & dbs.TableDefs(i).Fields.Count
End If
Next j
'---------------------------grid1-------------
Grid1.Cols = 4
Grid1.TextMatrix(0, 0) = "序号"
Grid1.TextMatrix(0, 1) = "表名称"
Grid1.TextMatrix(0, 2) = "字段数"
Grid1.TextMatrix(0, 3) = "表中记录数"
Grid1.ColWidth(0) = 800
Grid1.ColWidth(3) = 1500
Grid1.Rows = 10
'--------------
Dim dbs As Database
Dim rst As Recordset
Dim tdf As TableDef
Set dbs = OpenDatabase(zhuan_2)
For j = 0 To dbs.TableDefs.Count - 1
i = i + 1
'Grid1.AddItem Grid1.Rows + 1
'Grid1.Rows = i + 1
Grid1.TextMatrix(i, 0) = i
Grid1.TextMatrix(i, 1) = dbs.TableDefs(j).Name
Grid1.TextMatrix(i, 2) = dbs.TableDefs(j).Fields.Count
Grid1.TextMatrix(i, 3) = dbs.TableDefs(j).RecordCount'dbs.TableDefs(i).Fields.Count
'MsgBox dbs.TableDefs(i).RecordCount & "|" & dbs.TableDefs(i).Fields.Count
Next j
++++++++++++++++++++++++++++++++++++++++
问题:
为什么我所得到的表中有五个是系统的?ms开头的!?
While Not RS.EOF
If Trim(RS!CATALOG_NAME) = "tempdb" Then RS.MoveNext
If Trim(RS!CATALOG_NAME) = "master" Then RS.MoveNext
If Trim(RS!CATALOG_NAME) = "model" Then RS.MoveNext
If Trim(RS!CATALOG_NAME) = "temp" Then RS.MoveNext
Msgbox RS!CATALOG_NAME
RS.MoveNext
Wend