如何获取当前数据库的所有用户表名

lo000ol 2003-04-11 01:52:48
请问在打开数据库后
Dim conn As ADODB.Connection
conn.Open connectstring
如何获取当前库的用户表名
...全文
32 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cf981231_sohu 2003-04-11
  • 打赏
  • 举报
回复
select * from sysobjects where type = 'U' order by name
suncyzz1314 2003-04-11
  • 打赏
  • 举报
回复
是SQL数据库可用下例代码:
Public Sub OpenSchemaX()

Dim cnn1 As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnn As String

Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
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

End Sub
lo000ol 2003-04-11
  • 打赏
  • 举报
回复

如何排除这些系统表,而只提取一般用户建的表呢?
noahman 2003-04-11
  • 打赏
  • 举报
回复
楼上的OpenSchema是一种方法,使用ADOX也是一种方法。注意他们得出的表名列表里面有一些是系统表,而非一般用户建的表。
hi128 2003-04-11
  • 打赏
  • 举报
回复
Dim strSQL As String
Dim conn As New ADODB.Connection
Dim rs, rs1 As New ADODB.Recordset
Dim str, selitem As String
Dim intloop, i As Integer

Private Sub Command1_Click()
Set conn = New ADODB.Connection
str = "Provider=Microsoft.Jet.OLEDB.4.0;Password='';User ID=Admin;Data Source=" & OpenDia.FileName & ";"
conn.Open str

Set rs = conn.OpenSchema(ADODB.SchemaEnum.adSchemaTables)
Do Until rs.EOF

If rs("table_Type").Value = "TABLE" Then
List1.AddItem (rs("table_Name").Value)
End If
rs.MoveNext
Loop

rs.Close
conn.Close
youxia001 2003-04-11
  • 打赏
  • 举报
回复
不同类型的库有不同的方法
DaiLM 2003-04-11
  • 打赏
  • 举报
回复
SELECT *
FROM sysobjects
WHERE (xtype = 'U')
DaiLM 2003-04-11
  • 打赏
  • 举报
回复
sp_tables

1,216

社区成员

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

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