请问ado.recordset 对象能否遍历,数据库的表名

xjb_netboy 2004-09-22 02:48:20
说的明白一点
我想得到,数据库的所有表名。
access,excel
...全文
360 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
XLYT 2004-10-13
  • 打赏
  • 举报
回复
又学一招!
原来怎么没注意这个OpenSchema?
haixiao868 2004-10-12
  • 打赏
  • 举报
回复
conserver这个变量没有定义吧
flyland 2004-09-28
  • 打赏
  • 举报
回复
哈哈,看错贴了,不好意思,这个不是我的贴子,呵呵。
flyland 2004-09-28
  • 打赏
  • 举报
回复
不好意思忘记给分了,
现在给。
zyg0 2004-09-23
  • 打赏
  • 举报
回复
acess我会excil我不会。文件操作是我的弱项
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (Left$([Name],4) <> "Msys") AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name;
flyland 2004-09-23
  • 打赏
  • 举报
回复
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "driver={microsoft excel driver (*.xls)};dbq=" & FileString
conn.Open
Set rstSchema = conn.OpenSchema(adSchemaTables)
Dim TableName()
Dim TableID
TableID = 0
Do Until rstSchema.EOF
ReDim Preserve TableName(TableID)
TableName(TableID) = rstSchema!TABLE_NAME
TableID = TableID + 1
rstSchema.MoveNext
Loop

rstSchema.Close
RUKYO 2004-09-23
  • 打赏
  • 举报
回复
'工程->引用Microsoft ActiveX Data Objects 2.x Library

Private Sub Command1_Click()
Dim adoCN As New ADODB.Connection 'Access的
Dim strCnn As New ADODB.Recordset

str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.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

Private Sub Command2_Click()
Dim adoCN As New ADODB.Connection 'Excel的
Dim strCnn As New ADODB.Recordset

str1 = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & App.Path & "\Book1.xls;" & "Extended Properties=""Excel 8.0;HDR=Yes;"";"
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
lxcc 2004-09-22
  • 打赏
  • 举报
回复
http://www.zdnet.com.cn/developer/rescnter/story/0,2000081634,39101251-2,00.htm
soupeven 2004-09-22
  • 打赏
  • 举报
回复
大哥!给分!给分啊!~!
soupeven 2004-09-22
  • 打赏
  • 举报
回复
'加一点注释
SoupEvenFlowManage '为数据库名称
soupeven 2004-09-22
  • 打赏
  • 举报
回复
可以实现,我在项目中用过没有问题
请先在工程中引用 Microsoft SQLDMO Object Library
代码如下:

Private Sub Form_Load()
'-------------------------------------------------------------
'获取服务器上所有数据库名并加载到组合框的方法
On Error GoTo ON_ERROR
Dim rsDB As New ADODB.Recordset
Dim i As Integer
cobDatabase.Clear
i = 1
Set rsDB = conServer.OpenSchema(adSchemaCatalogs)
While Not rsDB.EOF
cobDatabase.AddItem rsDB!CATALOG_NAME
rsDB.MoveNext
i = i + 1
Wend
cobDatabase.ListIndex = 1
rsDB.Close
Set rsDB = Nothing


'-------------------------------------------------------------
'附送获得所有服务器名称的方法
Dim dom As SQLDMO.NameList
Dim Server As New SQLDMO.Application
Set dom = Server.ListAvailableSQLServers
Dim i As Long
For i = 1 To dom.Count
cobSQLserverName.AddItem dom(i)
Next i
' cobSQLserverName.ListIndex = cobSQLserverName.ListCount - 1
Set Server = Nothing
cobDatabase.Text = "SoupEvenFlowManage"
GetServerName = True
Exit Function


ON_ERROR:
MsgBox "错误代码:" & Err.Number & vbCrLf & _
"错误描述:" & Err.Description, _
vbInformation + vbOKOnly, "系统提示"
Err.Clear

End Function

'注意自行设置连接字符串
XLYT 2004-09-22
  • 打赏
  • 举报
回复
不可以。
ACCESS里可以用系统表mssysobjects,EXCEL有待研究。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧