Access 2010:链接数据库、参考还是加载项?

2023-12-31

环顾四周,找到了各种各样的答案,但一无所获recent这确实比较了这些选项的优点和缺点。因此,我想请社区权衡一下您更喜欢哪条路线以及原因。

背景

这就是我们所拥有的:

  • 众多协议数据库中使用的一组通用 Access 模块和类(Access 2010 *.accdb 分割前端/后端)
  • 前端链接到后端数据库表和代码(链接数据库)
  • 后端包含协议特定的数据和代码
  • 公共模块/类数据库不应由用户直接编辑

Knowns

插件和数据库参考数据库:

  • 每次更改时都需要重新分发(即使其中没​​有更改代码)。
  • 必须在其 IDE 与协议数据库的 IDE 中进行编辑(否则您将丢失编辑内容,因为该数据库不是通用代码的)

问题

公共模块/类数据库应该如何连接到协议数据库?

  • 就像后端一样链接数据库
  • 将其作为参考附加到 IDE 中(“工具”>“参考”)
  • 创建加载项并将其添加为参考

你会怎么做以及为什么?

有什么优点/缺点?

哪个选项可以最大限度地提高性能?


我有以下代码的几种变体,我认为这个最适合您的情况(它从数据库中提取模块和表单,一旦数据库启动就覆盖现有的模块和表单)。

Public Sub ImportModules()
    Dim ImportDbLocation As String: ImportDbLocation = CurrentProject.path & "\ModuleDb.accdb"
    Dim ObjectsToImport As Recordset
    Set ObjectsToImport = CurrentDb.OpenRecordset("SELECT * FROM Objects IN """ & ImportDbLocation & """")
    Do While Not ObjectsToImport.EOF
        On Error Resume Next
        DoCmd.DeleteObject ObjectsToImport!ObjectType, ObjectsToImport!ObjectName
        On Error GoTo 0
        DoCmd.TransferDatabase acImport, "Microsoft Access", ImportDbLocation, ObjectsToImport!ObjectType, ObjectsToImport!ObjectName, ObjectsToImport!ObjectName
        ObjectsToImport.MoveNext
    Loop
End Sub

该代码由前端数据库中的 AutoExec 宏触发。 该数据库称为ImportDbLocation是包含我要导入的所有模块和表单的数据库。它包含一个名为Objects。该表有两列,其中一列名为ObjectName包含应拉取的所有对象的名称,其中一个名为ObjectType,这是一个对应于的查找字段acObjectType 枚举 https://msdn.microsoft.com/en-us/vba/access-vba/articles/acobjecttype-enumeration-access(删除了一些不相关的对象)。

优点:

  • 您将获得数据库中所有模块的全新副本,确保任何覆盖都无关紧要。
  • 您可以向“对象”表添加第三列,以筛选出特定数据库的对象,从而有选择地将某些对象推送到某些前端,将其他对象推送到其他前端(第四列用于指定 ModulesDb 文件中的对象名称) ,为不同的前端使用相同形式的多个变体)。
  • 所有代码都在前端,因此外部文件和引用并不奇怪
  • 您还可以使用此代码来提取您想要的任何其他类型的对象(在我的例子中主要是查询和表单)

缺点:

  • 加载时间增加(通常会增加一点点,但取决于导入的对象数量,可能会很长)
  • 模块对最终用户可见且可读(技术上也可以修改,但任何更改都会在数据库加载时撤消)
  • 您无法修改以这种方式进行导入的模块
  • 您需要适当的安全设置,否则用户将在每个打开的数据库上收到安全弹出窗口的垃圾邮件

我还有一个变体,它在打开时将模块从单独的线程异步推送到数据库,并且我有另一个实现,允许我在进行修改后有选择地将模块移动到前端。

如果需要,我可以共享它们,但尚未在生产环境中实现异步(仍在进行中,它应该节省加载时间并可以推送所有模块)

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

Access 2010:链接数据库、参考还是加载项? 的相关文章

  • 是否可以在 .Net Windows 表单内托管 Microsoft Access 表单?

    我问是否可以在 Net 表单中托管 Microsoft Access 表单 不 我没有发疯 我们正在维护一个完全用 VBA 编写的庞大系统 由一个不太了解 VBA 的人尝试使用 Microsoft Access 作为 IDE 它基本上是数千
  • 查询计算不同值的数量?

    我在 MS Access 2003 中有一个表 如下所示 url id example com red example com blue example com blue other com red other com orange mor
  • 使用 VBA 在另一个 Access 实例中打开特定窗体

    所以我在这里四处查看并找不到我的问题的答案 至少不完全是 案例如下 我在 DBase1 中 想要单击一个按钮并在单独的访问实例中打开 DBase2 中的 NeuSteckbrief 表单 我设法使用以下代码在单独的实例中打开 DBase2
  • 在函数上使用子例程的目的

    我已经使用 Access 一段时间了 尽管我了解 Function 相对于 Sub 的明显好处是它可以返回值 但我不确定为什么我应该使用 Sub 而不是一个函数 毕竟 除非我弄错了 函数可以做所有 Subs 可以做的事情吗 注意 我完全知道
  • MS-Access 查询中的语法错误(缺少运算符)

    以下查询给了我 missing operator 语法错误 所需的输出是表中数据的组合 dbo tbl 和意见 vw 我用过的所有钥匙都存在 有任何想法吗 SELECT dbo tbl BOD fpartno AS PartNumber d
  • MS Access VBA:通过 Outlook 发送电子邮件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何使用 MS Access VBA 通过帐户发送电子邮件 我知道这个问题很模糊 但是很难在网上找到在某种程度上还没有过时的相关信息 编辑
  • MS Access:在列中搜索星号/星号

    我正在寻找一种方法来搜索包含字符串数据类型的列 问题是星号或星号是保留符号 以下查询无法正常工作 select from users where instr pattern 如何编写 Access 查询来搜索列中的星号 您可以使用方括号在
  • schema.ini 文件不适用于 MS Access

    我有一堆 csv 文件 我通过 VBA 将它们导入到 Access 中的表中 我在与导入的 csv 文件相同的目录中还有一个 schema ini 文件 尽管在 ini 文件中字段被指定为双精度类型 但它们在 Access 中会转换为文本类
  • MS Access 中的舍入

    VBA Access 中舍入的最佳方法是什么 我目前的方法是利用Excel方法 Excel WorksheetFunction Round 但我正在寻找一种不依赖Excel的方法 请注意 VBA Round 函数使用 Banker 舍入 将
  • 在 Access 数据库中对列包含数字和字母的数据进行排序

    请帮助我 因为我一直无法做到这一点 选择此列 columnA 的访问 SQL 是什么 以便它返回一个结果集 其中的不同值首先根据数字排序 然后根据字母排序 这是列值 10A 9C 12D 11G 9B 10C 9R 8T 我尝试过 从 tb
  • OpenArgs 为空问题

    我正在使用OpenArgs使用时发送值的参数DoCmd OpenForm DoCmd OpenForm frmSetOther acNormal acFormAdd acDialog value 然后我用Me OpenArgs在打开的表格内
  • 字典、集合和数组的比较

    我正在尝试找出字典与集合和数组相比的相对优点和功能 我发现了一篇很棒的文章here http www experts exchange com articles 3391 Using the Dictionary Class in VBA
  • 与 OLE 服务器或 ActiveX 控件通信

    MS Access 2010 Win 7 常规形式我没有故意放置任何 ActiveX 或 OLE 东西 甚至不确定它们是什么 但无论如何 每当我在特定形式的代码中放入某些内容时 它都会说 您作为事件属性设置输入的表达式 XXXXX 产生了以
  • 使用 MS Access 链接表连接到 SQL Server 后端时是否可能发生 SQL 注入

    我一直在对此进行一些研究 但到目前为止还是一片空白 情况是这样的 我正在开发一个链接到 SQL Server 后端的 MS Access 前端 我在某种程度上使用 Access 中的链接表 表单访问 SQL DB 这样 当用户更新表单中的值
  • 从 MS Access 调用存储过程会导致错误 3146

    当我使用下面所示的代码从 MS Access 前端调用 SQL Server 存储过程时 它停止运行并抛出运行时错误 3146 这个存储过程在 SQL Server 中工作正常 但是当我从 MS Access 运行时 它首先工作 但突然停止
  • 无法删除 Microsoft Access 2003 中的主 -> 子子表单链接

    我在删除访问子报表数据表单中的主 gt 子链接字段时遇到问题 我尝试了各种方法来删除它们 使用子报表的属性窗口以及链接向导 我还从数据库中删除了子报表 然后将现有对象重新导入到新的访问实例中 一旦我重新添加子表单并将其命名为相同的名称 链接
  • 将 Mdb 转换为 Sql Server

    如何使用 C 或其他语言将 mdb 访问文件转换为 sql server 我找到了一个article http channel9 msdn com forums TechOff 234266 Convert MS Access DB to
  • 使用 VBA 在 Access 表中记录计数

    我正在尝试获取表的记录数 如果计数大于 17 则创建一个新表 Dim rst As DAO Recordset strSQL Select from SKUS Set rst db OpenRecordset strSQL If rst R
  • MS access:如何嵌入JPEG图像并预览它们?

    我用的是Access 2007 我创建了一个 OLE 字段来存储 JPEG 因此我可以轻松地将它们拖到数据库中 这样可行 问题是 该字段不显示 JPEG 而是显示通用 JPEG 缩略图我需要双击打开 JPEG 并预览它 有办法吗预览 JPE
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要

随机推荐

  • Gradle Ear 使用当前 WAR 文件名更新 application.xml

    我有一个 java EAR 项目 其中包含一些 WAR Web 应用程序 我正在使用 gradle 构建 EAR 文件 uberApp gt WarA
  • #<#:0x007fe3546d58f0> 的未定义方法 `posts_path'

    我是 Rails 新手 收到此错误 undefined method posts path for lt
  • Outlook - 根据收件人插入文本

    我需要根据收件人自动将文本插入到外发电子邮件中 我在另一个问题 归功于 76Mel 的答案中发现了一些看起来很有希望的代码 看来我可以将代码附加到 ThisOutlookSession 中的 ItemSend Private Sub App
  • Discord.py 无法获取证书

    我是否必须在系统内安装 生成 下载新证书 或者我是否可以以某种方式禁用 python 内的证书 ubuntu 18 python 3 7 discord py latest INFO 2019 03 05 22 58 02 Initiali
  • 如何在角度js中显示依赖选择框选项[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个表单 我想要两个选择框 以便其中一个选择框的某些选项将根据另一个选择框的当前值显示 隐藏 e g Select
  • 在基本图形的绘图区域之外绘制图例?

    正如标题所说 使用基础图形时如何在绘图区域之外绘制图例 我想过摆弄layout并生成一个仅包含图例的空图 但我对仅使用基本图形设施的方式感兴趣 例如 par mar 在图例的右侧留出一些空间来放置图例 这里有一个例子 plot 1 3 rn
  • 我应该停止使用抽象基类/接口,而是使用 boost::function/std::function 吗?

    我刚刚了解了 std function 的真正含义以及它的用途 我有一个问题 现在我们基本上有了委托 我们应该在何时何地使用抽象基类 以及何时应该实现通过 std function 对象提供给泛型类的多态性 ABC在C 11中是否受到致命打
  • 双重调度和替代方案

    我正在努力寻找更好的方法来处理一些成长if构造来处理不同类型的类 这些类最终是不同值类型 int DateTime 等 的包装器 并带有一些附加状态信息 因此 这些类之间的主要区别在于它们包含的数据类型 虽然它们实现了泛型接口 但它们也需要
  • 如何在浏览器中跨页面保留 Cognito 身份

    我使用开发人员经过身份验证的身份通过客户端浏览器上的 Cognito 进行身份验证 当我的页面加载 或刷新 时 我希望我的应用程序能够记住身份 只要对象没有过期 我认为它会持续大约一个小时 但是 我不知道如何从 Cognito 检索身份 而
  • 为什么 chown 在 Dockerfile 中不起作用? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的 Dockerfile 创建一个目录 对其进行 chown 然后列出该目录 该目录仍归 root 所有 这是为什么 这是 Docker
  • GET 链接的 CSRF 保护

    我需要向 Web 应用程序添加 CSRF 保护 问题在于 该应用程序严重依赖链接 即 GET 请求 来对数据库进行更改 链接是使用类生成的 因此我可以轻松地为每个链接添加 CSRF 令牌的额外参数 但是 我知道 GET 请求中的 CSRF
  • DataAdapter.Fill 太慢

    我知道 DataAdapter 存在性能问题 但是有什么方法可以更快地解决这个问题吗 目前 DataAdapter Fill 方法在 3000 条记录上花费 5 6 秒 这对于我的应用程序来说太慢了 如果我删除Fill行并执行 SQL 使用
  • PHP 堆栈实现

    我想构建一个用 PHP 实现的堆栈 最初我有这个代码 class Stack protected stack protected limit public function construct limit 10 initialize the
  • Android 仅在一项活动上全屏?

    我的应用程序有 3 个活动 activity main activity one activity two 我只想全屏显示第一个活动 所以我进行了搜索 发现我必须使用它 View decorView getWindow getDecorVi
  • vagrant 和 ubunutu:pip install jupyter 错误:在 /home/vagrant/.pip/pip.log 中存储失败的调试日志

    我想在 ubuntu 14 04 vagrant 上使用以下命令安装 jupyter sudo pip install jupyter 但是出现错误 你能告诉我如何解决吗 vagrant vagrant ubuntu trusty 64 p
  • 修复 vbs 以启动隐藏系统文件检查器 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有这个vbs 部分脚本由hackoo https stackoverflow com questions 38509033 how
  • 在 Xampp 之后安装 Zend Framework

    我运行的是 Windows 7 并使用 Xampp 我想安装 PHP 的 Zend 框架 但我很难理解如何安装它 我之前使用过Zend框架 但它已经安装在我正在使用的Linux系统上 我正在阅读 Zend 文档 http framework
  • 如何在测试之间重复使用 Capybara 会话?

    我想继续使用相同的会话 我的意思是Rails在不同的会话之间的会话Test Unit使用 Capybara 的集成测试 这Capybara Session对象在所有测试中都是相同的 因为它被重复使用 但是当我在另一个测试中访问另一个页面时
  • RNGestureHandlerModule.attach 手势处理程序有 3 个参数,预期为 2 个

    我正在使用 React Native 构建一个应用程序 并有一个登录 主页和会员屏幕 当用户是管理员时 我让他进入主屏幕 当他是会员时 我让他进入会员屏幕 在主屏幕内 我还有 AddMember 屏幕 因此我在堆栈导航内构建堆栈导航和抽屉导
  • Access 2010:链接数据库、参考还是加载项?

    环顾四周 找到了各种各样的答案 但一无所获recent这确实比较了这些选项的优点和缺点 因此 我想请社区权衡一下您更喜欢哪条路线以及原因 背景 这就是我们所拥有的 众多协议数据库中使用的一组通用 Access 模块和类 Access 201