select Name from MSysObjects where type=1 ---------------------------------------------------------------------------------------------------------------------- select [Name] from MSysObjects where type=1 ----------------------------------------------------------------------------------------------------------------------- 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 '赋值给组合框 将以上程序放置在窗体的“成为当前”事件中,将“导入的表名”组合框的‘行来源类型’ 设为‘值列表’ ------------------------------------------------------------------------------------------------------------------------- SELECT MSysObjects.Name FROM MSysObjects WHERE (((MSysObjects.Flags)=0) AND ((MSysObjects.Type)=1)) ------------------------------------------------------------------------------------------------------------------------ 谢谢各位。我用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的权限呢? 望各位指教 ------------------------------------------------------------------------------------------------------------------------------------------------- 打开access数据库: 1、工具--> 选项--> 视图--> 将 "系统对象 "打上勾。 2、工具--> 安全--> 用户与组安全--> 选定表msysobjects,设定权限。 |
|