【问题标题】:Trigger in MS Access在 MS Access 中触发
【发布时间】:2011-06-15 08:27:03
【问题描述】:

我可以像在 SQL Server 等其他数据库中一样在 MS Access 中插入触发器吗?

【问题讨论】:

  • 是的。但是,如果您可以使用 SQL Server 来存储您的数据和 ms 访问作为前端......那么更好

标签: asp.net ms-access


【解决方案1】:

您使用的是 Access 2010 吗?如果是这样,你可以使用Access 2010 data macros*,否则你就倒霉了。


Access 2010 数据宏(类似于触发器)

访问团队于 8 月 13 日发布

上周我们概述了 Access 2010 宏的改进 设计器、参数支持和 IntelliSense。这些改进 基于 Access 2007 宏沙箱的宏改进,嵌入 宏、TempVars、调试和对错误处理的支持。

宏的下一步自然是为业务提供模型 规则。数据宏允许开发人员将逻辑附加到记录/表格 事件(类似于 SQL 触发器)。这意味着您将逻辑写在一个 地方和更新这些表的所有表格和代码都继承了 逻辑。以下是一些典型的数据宏场景 捐赠管理数据库:

【讨论】:

  • 值得注意的是,数据宏不会在拆分数据库中触发。
【解决方案2】:

简单地说,Access VBA 子例程/函数就像存储过程对于 SQL Server、触发器对于 MySQL、过程函数对于 PostgreSQL。同样,查询将对应于视图。

话虽如此,请注意 Access VBA 配备了完整的 Jet SQL 语言。您可以使用逻辑例程中的参数动态创建表、更新、追加、生成表、创建查询、创建记录集。从某种意义上说,您根本不需要使用功能区来创建或管理您的数据库。此外,存储查询甚至可以直接在其脚本中使用 VBA 函数:SELECT table1.A, table1.B, somefunction() from table1

挑战是将您的服务器触发事件​​转换为用户触发事件。本质上,用户必须对表进行更新、查询运行等操作。因此,如果您使用一些用户添加/更新的值来表达您的事件,您可以编写 VBA 函数脚本以在特定表或多个表上运行例程。

【讨论】:

    【解决方案3】:

    您可以在表单上放置一个 OnTimer 事件,并让它在给定的时间或间隔启动宏或模块。这适用于所有版本的 Access 回到 A95。

    【讨论】:

      【解决方案4】:

      这个问题已经回答了。 MS Access 数据库与服务器数据库不同,它没有触发器、存储过程或包。但是,有一些方法可以解决这个问题,如果您想在对数据库执行插入、更新或删除操作时收到通知,那么您可以通过 VBA 代码添加选择查询。或者,如果需要,您可以将过程添加到带有时间、更改类型和值的审计表中。

      Access 2007 triggers and procedures equivalents?

      您可以拥有一个 MS Access 前端并使用一个 MS SQL Server 后端,但对某些人来说,这可能是作弊。但是您可以使用 VBA 代码来更改值并在表上使用一些查询。

      【讨论】:

        【解决方案5】:

        虽然在 ms 访问中没有像 sql server 这样的触发器,但您有创造性的选择。一种是设置允许/限制某些数据的表格属性格式。另一个是当用户即将(在更新事件之前)将数据从接口发送到表时触发更新查询。当然,也有使用 ms access 作为连接到客户端服务器数据库的前端,而不是 ms access 的平面文件系统(oracle 和 sql server 是 access 前端的常见后端)。祝你好运。

        【讨论】:

          猜你喜欢
          • 2011-08-03
          • 1970-01-01
          • 2013-11-03
          • 2011-02-16
          • 1970-01-01
          • 1970-01-01
          • 2022-09-22
          • 1970-01-01
          • 2015-10-30
          相关资源
          最近更新 更多