vba如何取得access中已经定义好的query的个数名称等信息

wangxiuhui1225 2013-05-19 11:34:31
要做一个查询access结构的小工具,关于表的部分已经做好,我需要得到access中已经定义好的query的个数,他们的名字,类型还有他们的sql语句。原来用c#做的但是得不到,改用vba,求各位大神帮助
...全文
342 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2013-05-20
  • 打赏
  • 举报
回复
用ADO的OPENSCHEMA取得所有查询 OR 用DAO取得
ACMAIN_CHM 2013-05-19
  • 打赏
  • 举报
回复
AllQueries 集合包含 CurrentData 或 CodeData 对象中每个查询的 AccessObject 对象。 使用 AllQueries 集合 CurrentData 或 CodeData 对象具有一个 AllQueries 集合,其中包含描述由 CurrentData 或 CodeData 指定的所有查询的实例的 AccessObject 对象。例如,可以在 Visual Basic 中列举 AllQueries 集合来设置或返回该集合中单个 AccessObject 对象的属性值。 提示 For Each...Next 语句对列举集合非常有用。 可以引用 AllQueries 集合中的单个 AccessObject 对象,方法是:按照名称引用对象,或引用集合中对象的索引。如果要引用 AllQueries 集合中特定的对象,最好按照名称引用查询,因为查询的集合索引可能会更改。 AllQueries 集合的索引是从零开始的。如果通过索引来引用查询,则第一个查询是 AllQueries(0),第二个查询是 AllQueries(1),依此类推。 注释 AllQueries 集合仅包含 Microsoft Access 数据库 (.mdb) 中的 AccessObject 对象。Microsoft Access 项目 (.adp) 中不包含任何宏,请参阅 AllViews 集合。 若要列出数据库中所有打开的查询,可使用 AllQueries 集合中每个 AccessObject 对象的 IsLoaded 属性。然后,可使用每个单独的 AccessObject 对象的 Name 属性返回查询的名称。 无法在 AllQueries 集合中添加或删除 AccessObject 对象。 下面的示例将打印 AllQueries 集合中每个打开的 AccessObject 对象的名称。 Sub AllQueries() Dim obj As AccessObject, dbs As Object Set dbs = Application.CurrentData ' Search for open AccessObject objects in AllQueries collection. For Each obj In dbs.AllQueries If obj.IsLoaded = True Then ' Print name of obj. Debug.Print obj.Name End If Next obj End Sub
wangxiuhui1225 2013-05-19
  • 打赏
  • 举报
回复
谢谢~那我如果想获得其他数据库中的查询名称呢。。 Dim Conn As New ADODB.Connection Conn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\Users\user\Desktop\access review\access review\bin\Debug\ansh1.mdb" Conn.Open ConnectionString 我要获取ansh1中的查询 Application.CurrentData应该怎么改?

7,713

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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