请问如何用查询语句获取Access中所有表的表名

时间:2022-12-26 21:53:12
在sybase中只要用select * from sysobjects where type='U'就可以了。
access中如何做到呢?

6 个解决方案

#1


select Name from MSysObjects where type=1

#2


select [Name] from MSysObjects where type=1

#3


Dim obj As AccessObject, dbs As Object
Dim strList As String
Set dbs = Application.CurrentData '建立数据库对象记录集
strList = ""
For Each obj In dbs.AllTables '遍历数据库中的所有表
If Left(obj.Name, 4) <> "Msys" Then '剔除系统数据表
strList = strList & obj.Name & ";" '合成导入的表名组合框的行来源中的数据
End If
Next obj
Me!导入的表名.RowSource = strList '赋值给组合框

将以上程序放置在窗体的“成为当前”事件中,将“导入的表名”组合框的‘行来源类型’
设为‘值列表’

#4


SELECT MSysObjects.Name
FROM MSysObjects
WHERE (((MSysObjects.Flags)=0) AND ((MSysObjects.Type)=1))

#5


谢谢各位。我用access软件打开mdb的时候,可以用查询里面输入你们说的语句
select name from msysobjects获取表名。
但是当我在asp.net网页中使用此查询sql语句的时候,报错:
不能读取记录;在 'msysobjects' 上没有读取数据权限。
但是使用其它sql语句查询库中普通表数据没有问题。
我的连结字符串如下:
 string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("\\data\\webtxt.mdb")  + ";Jet OLEDB:Database Password=txttest;User ID=Admin;Jet OLEDB:System database=;";
其中已经是admin用户了,为何还会提示没有访问msysobjects的权限呢?
望各位指教

#6


打开access数据库:
1、工具-->选项-->视图-->将"系统对象"打上勾。
2、工具-->安全-->用户与组安全-->选定表msysobjects,设定权限。

#1


select Name from MSysObjects where type=1

#2


select [Name] from MSysObjects where type=1

#3


Dim obj As AccessObject, dbs As Object
Dim strList As String
Set dbs = Application.CurrentData '建立数据库对象记录集
strList = ""
For Each obj In dbs.AllTables '遍历数据库中的所有表
If Left(obj.Name, 4) <> "Msys" Then '剔除系统数据表
strList = strList & obj.Name & ";" '合成导入的表名组合框的行来源中的数据
End If
Next obj
Me!导入的表名.RowSource = strList '赋值给组合框

将以上程序放置在窗体的“成为当前”事件中,将“导入的表名”组合框的‘行来源类型’
设为‘值列表’

#4


SELECT MSysObjects.Name
FROM MSysObjects
WHERE (((MSysObjects.Flags)=0) AND ((MSysObjects.Type)=1))

#5


谢谢各位。我用access软件打开mdb的时候,可以用查询里面输入你们说的语句
select name from msysobjects获取表名。
但是当我在asp.net网页中使用此查询sql语句的时候,报错:
不能读取记录;在 'msysobjects' 上没有读取数据权限。
但是使用其它sql语句查询库中普通表数据没有问题。
我的连结字符串如下:
 string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("\\data\\webtxt.mdb")  + ";Jet OLEDB:Database Password=txttest;User ID=Admin;Jet OLEDB:System database=;";
其中已经是admin用户了,为何还会提示没有访问msysobjects的权限呢?
望各位指教

#6


打开access数据库:
1、工具-->选项-->视图-->将"系统对象"打上勾。
2、工具-->安全-->用户与组安全-->选定表msysobjects,设定权限。