以编程方式重命名 Access 查询中的表

2023-12-29

我有一个包含数百个查询的 access 2003 数据库文件。我想根据条件重命名查询中引用的所有表

If tableNameInQuery = "tableName" Then

    tableNameInQuery = "newTableName"

End If

PS 如果有 C# 或 VB.NET 的示例,我们将不胜感激


我有一个快速而肮脏的 VBA 子程序,它可以满足我认为您想要的功能。 (您可以将其翻译成您喜欢的语言之一吗?)您可以使用数据库的副本进行尝试。 (不要尝试使用您想要保留的唯一数据库副本!)

To substitute "tblBar" for "tblFoo" in your queries, you can run it from the VBE Immediate Window (from Access, Ctrl+g will get you there) like this:

call swapTblNamesInQueryDefs("tblFoo", "tblBar")

要实际保存更改的查询定义,请像这样调用它:

call swapTblNamesInQueryDefs("tblFoo", "tblBar", "savechanges")

代码:

Public Sub swapTblNamesInQueryDefs(ByVal pstrFind As String, _
ByVal pstrReplace As String, _
Optional ByVal pstrMode As String = "DisplayOnly")

Dim qd As QueryDef
Dim re As Object
Dim strSql As String

Set re = CreateObject("vbscript.regexp")
re.Global = True
re.IgnoreCase = True

re.Pattern = "\b" & pstrFind & "\b"

For Each qd In CurrentDb.QueryDefs
    If Left$(qd.Name, 1) <> "~" Then
        Debug.Print qd.Name
        Debug.Print "Before: " & qd.SQL
        strSql = re.Replace(qd.SQL, pstrReplace)
        Debug.Print "After: " & strSql
        'only save the modified SQL statement if called
        'with SaveChanges parameter
        'If pstrMode = "SaveChanges" Then
        If StrComp(pstrMode, "SaveChanges", vbTextCompare) = 0 Then
            qd.SQL = strSql
        End If
        Debug.Print String(20, "-")
    End If
Next qd
Set re = Nothing
Set qd = Nothing
End Sub

编辑:更改了评估pstrMode以保证比较不区分大小写(如果模块包含“Option Compare Binary”)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式重命名 Access 查询中的表 的相关文章

  • 您可以从基本 Win32 控制台模板应用程序中的 C#/Winrt 组件调用(不是 WinForm/abstractions/wrappers 或使用 C++/Winrt 模板)吗?)

    我有一个现有的程序 win32 x86 控制台应用程序 需要调用托管代码 来自 Net 的 C dll The dll不暴露给 COM 但可以从 C WinRT 组件调用并由 C WinRT 控制台模板应用引用 BUT即使安装了 C Win
  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • Windows 服务应用程序中自托管 ASP.NET Web API 的问题

    我在网上看到了一些文章 描述了如何在 Windows 服务应用程序中自行托管 ASP NET Web API 请参阅here http www piotrwalat net hosting web api in windows servic
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • linq 中使用字符串数组 c# 的 'orderby'

    假设我有一个这样的方法定义 public CustomerOrderData GetCustomerOrderData string CustomerIDs var query from a in db Customer join b in
  • 在 C# 中调用 C++ 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有很多用 C 编写的库 我想从 C 调用这些库 但是 我遇到了很多问题 我想知道是否有书籍或指南告诉我如何做到这一点 Dll导入 htt
  • 运行需要 MySql.Data 的内置 .NET 应用程序

    我在运行我编写的内置 NET 应用程序时遇到问题 我的应用程序使用最新的 MySql 连接器 该连接器安装在我的系统上 当我尝试将其添加为引用时 该连接器显示为 NET 4 Framwork 组件 当我在环境中以调试模式运行应用程序时 一切
  • 在开关中使用“goto”?

    我看到了一个建议的编码标准 内容如下Never use goto unless in a switch statement fall through 我不跟 这个 例外 案例到底是什么样的 这证明了goto 此构造在 C 中是非法的 swi
  • C# 5 async/await 线程机制感觉不对?

    为什么让调用线程进入异步方法直到内部 等待 一旦调用异步方法就生成一个线程 这不是更干净吗 这样您就可以确定异步方法会立即返回 您不必担心在异步方法的早期阶段没有做任何昂贵的事情 我倾向于知道某个方法是否要在 我的 线程上执行代码 不管是堵
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 使用具有抗锯齿功能的 C# 更改抗锯齿图像的背景颜色

    我有一个图像需要更改背景颜色 例如 将下面示例图像的背景更改为蓝色 然而 图像是抗锯齿的 所以我不能简单地用不同的颜色替换背景颜色 我尝试过的一种方法是创建第二个图像 仅作为背景 并更改其颜色并将两个图像合并为一个图像 但是这不起作用 因为
  • 如何从 Rx Subscribe 回调异步函数?

    我想回调 Rx 订阅中的异步函数 例如 像那样 public class Consumer private readonly Service service new Service public ReplaySubject
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 在 C#.NET 中安全删除文件

    在我正在做的一个项目中 我想为用户提供 安全 删除文件的选项 例如 用随机位或 0 覆盖它 在 C NET 中是否有一种简单的方法可以做到这一点 效果如何 你可以调用系统内部删除 http technet microsoft com en
  • 需要提取字符串中点后的最后一个数字,如“7.8.9.1.5.1.100”

    我需要提取 C 字符串中最后一个点后面的最后一个数字 例如 7 8 9 1 5 1 100 并将其存储在整数中 Added 该字符串也可以是 7 8 9 1 5 1 1 或 7 8 9 1 5 1 0 我还想验证它在最后一个点之前恰好是 7
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c

随机推荐

  • 如何从控制台运行twisted?

    我在 Windows 7 上使用 Python 3 和 Anaconda 我安装了 Twistedconda install twisted 现在我正在尝试运行twisted or twistd 从控制台 但我收到此错误 twisted 不
  • 如何使用 Javascript 从 CDN 加载外部 css 文件?

    简而言之 我想在 a 上加载 bootstrap css 文件web page https secure helpscout net members register 13 在互联网上 不是在我的网站上 在浏览器控制台中使用 Javascr
  • 在 Internet Explorer 中添加事件监听器

    Internet Explorer 9 中的元素对象相当于什么 if Element prototype addEventListener Element prototype addEventListener function 它在 Int
  • 什么情况下需要调用两次GC.Collect

    我们有一个 WPF 应用程序 基于 Unity 具有 MMVVVM 模式 在应用程序生命周期中可以有多个项目生命周期 在每个项目生命周期之后我们都会进行手动 Tear Down 并尝试释放 ViewModel 的所有引用 对于 Unity
  • 写入 PIC 上的 EEPROM

    这里有PIC单片机编程器吗 我正在学习一些使用 pickit2 和它附带的 16F690 芯片的 PIC 微控制器编程 我目前正在尝试各种设施 我可以成功read如果我在 MPLAB 中设置 EEPROM vaklue 则代码中来自 EEP
  • Pushwoosh 无法在 Unity 的发布版本中工作

    我试图将 Pushwoosh 与 Unity 集成 最新版本需要我实际使用 Pro Guard 和 gradle 因为存在 multidex 错误 之后 由于 proguard 出现了重复文件错误 我通过创建 proguard user t
  • 无法弄清楚为什么模型在回发时为空?

    我是 ASP NET MVC 的新手 我正在尝试创建一个非常简单的博客类型网站作为学习一切工作原理的方法 但是 当我从评论表单发布到空模型时遇到问题 我不知道为什么 在博客文章页面上 我有一个 添加评论 链接 它调用一些 JQuery 来呈
  • 在 Qt Creator 中运行纯 C 项目

    我使用 qt Creator 创建了一个普通的 c 项目文件 gt 新文件或项目 gt 非 Qt 项目 gt 普通 C 项目 main c include
  • Maps V2 InfoWindow 中的动态内容

    我想在 Maps V2 片段中的标记上显示信息窗口 问题是 我想显示从网络动态加载的位图通用图像下载器 https github com nostra13 Android Universal Image Loader 这是我的 InfoWi
  • PHPUnit 启用颜色输出

    我正在 Windows 7 上从命令行运行 PHPUnit 我尝试通过以下方式启用颜色输出phpunit color 但它仍然显示相同 没有颜色输出 如何在 Win7 上从命令行获取 PHPUnit 的颜色输出 你将不得不使用http so
  • Aeson:派生结构的某些(但不是全部)字段

    我有一个大型结构 我需要它是 FromJSON 的实例 以便我可以将 json 数据解析到其中 我想自动派生 但单个字段需要 特别小心 因为它是 json 中的一个对象 并且我希望它是我的结构中的值的数组 如何在不编写重复所有字段的巨大 F
  • 如何从角度 6 的数组中删除重复的对象

    我正在尝试删除数组中的重复值对象 但不起作用 我认为重复函数正在起作用 但没有反映在li列表 你能找出我需要改变的地方吗 我的服务文件 addComp Names c this item push name Names componenti
  • NTFS 性能和大量文件和目录

    采用 NTFS 的 Windows 如何处理大量文件和目录 在遇到性能问题或其他问题之前 是否有关于可以放置在单个目录中的文件或目录限制的任何指导 例如 拥有一个包含 100 000 个文件夹的文件夹可以吗 以下是来自某个环境中的一些建议
  • Outlook-根据vba规则将邮件导出为文本

    我很确定以前已经这样做过 有谁知道如何将电子邮件导出到我的 C 驱动器上的文本文件中 我知道如何将电子邮件移动到 Outlook 中但在我的 C 驱动器上的其他文件夹中 Thanks 查看MailItem SaveAs方法 您指定路径和文件
  • 清单合并失败。添加并链接react-native-device-info后

    清单合并失败 属性元数据 android support VERSION value value 26 0 1 来自 com android support cardview v7 25 3 1 AndroidManifest xml 24
  • SqlRoleProvider:调用 Roles.GetRolesForUser 时出现 NullReferenceException

    设想 使用 SqlRoleProvider 对 Sql Server 2012 数据库服务器进行身份验证的 WCF 服务 WCF 托管在 IIS7 Web 服务器上 请看这个错误 System NullReferenceException
  • 将请求从一个jsp转发到另一个jsp并包含所有请求参数?

    我有这种情况 用户在浏览器中的jsp表单上输入一些内容并提交 在 servlet 中 我处理请求并向刚刚继续的客户端显示 jsp page1 按钮 现在单击 继续 我想将此请求转发到另一个 jsp page2 其中所有请求参数都出现在 pa
  • Parse.com,将用户添加到创建的角色

    我有一个云代码 它在用户注册时创建两个帐户角色 下面是方法 Parse Cloud afterSave account function request var accountName request object get name cre
  • 如何创建并行堆栈并在其上运行协程?

    我决定我应该尝试实现协程 我认为我应该这样称呼它们 以获得乐趣和利润 我希望必须使用汇编程序 如果我想让它对任何事情都有用的话 可能还需要一些 C 语言 请记住 这是出于教育目的 使用已经构建的协程库太容易了 而且真的没什么乐趣 你们知道s
  • 以编程方式重命名 Access 查询中的表

    我有一个包含数百个查询的 access 2003 数据库文件 我想根据条件重命名查询中引用的所有表 If tableNameInQuery tableName Then tableNameInQuery newTableName End I