【问题标题】:Assistance listing query names from many (~100) ms access databases帮助列出来自许多 (~100) ms 访问数据库的查询名称
【发布时间】:2020-01-21 18:39:08
【问题描述】:

我继承了管理我们组织客户管理系统的责任。数据在 ms-sql 中,数据输入通过 .net 自定义屏幕完成,报告通过 ms-access 完成。

我的前任(从未接受过太多技术培训)通过在 ms-access 中构建查询、导出数据并将数据作为电子邮件附件发送来响应用户对数据的请求。多年来各种尝试组织事物,.mdb 的损坏和其他问题,现在大约有 100 个 .mdb 文件,其中包含他的查询。每个 mdb 可能有大约 100 个查询。

现在,用户会通过电子邮件向我发送他发送给他们的附件并说“您的前任几个月前为我创建了此报告。您可以再运行一次吗?”我可以看到查询的名称,因为它是导出的 excel 文件的名称。我去打开他最常使用的 .mdb 文件并查找查询名称,但我找不到其中的许多。

关于如何对 .mdb 文件的整个文件夹目录运行某些内容以获取 .mdb 文件中所有查询的列表的任何想法?

欢迎任何想法,非常感谢。

【问题讨论】:

  • 每个数据库都有一个QueryDefs collection。使用 VBA,您可以遍历集合并检索每个 QueryDef 的名称

标签: ms-access


【解决方案1】:

您可以使用 Dir 循环文件名:

Public Function ListQueries()

    Const Path      As String = "C:\Test\"

    Dim Workspace   As DAO.Workspace
    Dim Database    As DAO.Database
    Dim Query       As DAO.QueryDef

    Dim Filename    As String

    Set Workspace = DBEngine(0)

    Filename = Dir(Path & "*.mdb", vbNormal)
    While Filename <> ""
        Debug.Print Filename

        Set Database = Workspace.OpenDatabase(Path & Filename, , True)
        For Each Query In Database.QueryDefs
            If Asc(Query.Name) <> 126 Then
                Debug.Print , Query.Name
            End If
        Next
        Database.Close

        Filename = Dir
    Wend

End Function

【讨论】:

  • 非常感谢!这可以满足我的需要!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 2019-04-03
  • 2016-06-30
  • 2021-10-05
  • 2018-02-20
  • 2021-04-01
相关资源
最近更新 更多